diff --git a/src/main/i18n/locales/zh_CN/devtools.json b/src/main/i18n/locales/zh_CN/devtools.json index ab4a5122..fbe731ee 100644 --- a/src/main/i18n/locales/zh_CN/devtools.json +++ b/src/main/i18n/locales/zh_CN/devtools.json @@ -100,48 +100,52 @@ } }, "textToUnicode": { - "label": "文本转Unicode", - "description": "将文本转换为Unicode,反之亦然", + "label": "文本转 Unicode", + "description": "将文本转换为 Unicode,反之亦然", "modes": { "textToUnicode": "文本 → Unicode", "unicodeToText": "Unicode → 文本" } }, "textToAscii": { - "label": "文本转ASCII Binary", - "description": "将文本转换为ASCII binary,反之亦然", + "label": "文本转 ASCII 二进制", + "description": "将文本转换为 ASCII 二进制,反之亦然", "modes": { "textToAscii": "文本 → ASCII", "asciiToText": "ASCII → 文本" } }, + "lineBreakNormalizer": { + "label": "换行符规范化", + "description": "移除硬换行并对粘贴的终端文本进行规范化处理" + }, "base64": { - "label": "Base64 Encoder / Decoder", - "description": "将文本编码或解码为Base64", + "label": "Base64 编解码器", + "description": "将文本编码或解码为 Base64", "modes": { "textToBase64": "文本 → Base64", "base64ToText": "Base64 → 文本" } }, "jsonToYaml": { - "label": "JSON转YAML", - "description": "将JSON转换为YAML,反之亦然", + "label": "JSON 转 YAML", + "description": "将 JSON 转换为 YAML,反之亦然", "modes": { "jsonToYaml": "JSON → YAML", "yamlToJson": "YAML → JSON" } }, "jsonToToml": { - "label": "JSON转TOML", - "description": "将JSON转换为TOML,反之亦然", + "label": "JSON 转 TOML", + "description": "将 JSON 转换为 TOML,反之亦然", "modes": { "jsonToToml": "JSON → TOML", "tomlToJson": "TOML → JSON" } }, "jsonToXml": { - "label": "JSON转XML", - "description": "将JSON转换为XML,反之亦然", + "label": "JSON 转 XML", + "description": "将 JSON 转换为 XML,反之亦然", "modes": { "jsonToXml": "JSON → XML", "xmlToJson": "XML → JSON" @@ -159,7 +163,7 @@ "description": "从文本生成哈希值" }, "hmac": { - "label": "HMAC生成器", + "label": "HMAC 生成器", "description": "生成由密钥和消息组成的基于哈希的消息认证码(HMAC)" }, "password": { @@ -167,27 +171,46 @@ "description": "生成安全密码" }, "uuid": { - "label": "UUID生成器", + "label": "UUID 生成器", "description": "生成通用唯一标识符(UUID)" } }, "web": { "label": "网络", "urlParser": { - "label": "URL解析器", - "description": "将URL解析为其组件" + "label": "URL 解析器", + "description": "将 URL 解析为其组件" }, "urlEncoder": { - "label": "URL Encoder / Decoder", - "description": "编码或解码URL", + "label": "URL 编解码器", + "description": "编码或解码 URL", "modes": { - "urlEncode": "URL Encode", - "urlDecode": "URL Decode" + "urlEncode": "URL 编码", + "urlDecode": "URL 解码" } }, "slugify": { "label": "Slugify", - "description": "将文本转换为URL友好的slug" + "description": "将文本转换为 URL 友好的 slug" + } + }, + "compare": { + "label": "比较", + "jsonDiff": { + "label": "JSON 差异对比", + "description": "比较并可视化两个 JSON 文本之间的差异", + "original": "原始", + "modified": "修改后", + "filters": { + "added": "新增", + "removed": "删除", + "modified": "修改" + }, + "empty": "在两个文本区域内粘贴 JSON 即可查看差异", + "errors": { + "invalidJson": "无效的 JSON", + "diffFailed": "差异检查失败" + } } }, "form": { @@ -198,7 +221,7 @@ "inputUrl": "输入URL", "outputUrl": "输出URL", "parsedUrl": "解析的URL", - "splitQueryString": "分割Query String", + "splitQueryString": "分割查询字符串", "key": "键", "value": "值", "component": "组件", @@ -218,7 +241,7 @@ "text": "输入文本", "value": "输入值", "secretKey": "输入密钥", - "url": "输入URL" + "url": "输入 URL" } } } diff --git a/src/main/i18n/locales/zh_CN/menu.json b/src/main/i18n/locales/zh_CN/menu.json index 7ad64389..a47565db 100644 --- a/src/main/i18n/locales/zh_CN/menu.json +++ b/src/main/i18n/locales/zh_CN/menu.json @@ -7,7 +7,7 @@ "quit": "退出 massCode", "about": "关于 massCode", "hide": "隐藏 massCode", - "mathNotebook": "Math Notebook" + "mathNotebook": "计算草稿本" }, "help": { "label": "帮助", @@ -33,41 +33,61 @@ "snippets": "代码片段集合" } }, + "file": { + "label": "文件", + "new": "新建" + }, "view": { "label": "视图", "showSidebar": "显示/隐藏侧边栏", + "layout": { + "label": "布局", + "allPanels": "所有面板", + "listEditor": "列表 + 编辑器", + "editorOnly": "仅编辑器" + }, "sortBy": { - "label": "代码片段排序方式", + "label": "排序方式", "dateModified": "修改日期", "dateCreated": "创建日期", "name": "名称" }, + "sortOrder": { + "label": "排序规则", + "ascending": "升序", + "descending": "降序" + }, "compactMode": "紧凑模式", - "layout": { - "label": "Layout", - "allPanels": "All Panels", - "listEditor": "List + Editor", - "editorOnly": "Editor Only" - } + "hideCompletedTasks": "隐藏已完成的任务" }, "edit": { "label": "编辑", + "undo": "撤销", + "redo": "恢复", + "cut": "剪切", + "copy": "复制", + "paste": "粘贴", + "delete": "删除", + "selectAll": "全选", "find": "查找" }, "editor": { "label": "编辑器", - "copy": "复制代码片段到剪贴板", + "copySnippet": "复制代码片段", + "copyNote": "复制笔记", "format": "格式化", + "normalizeTerminalOutput": "规范化换行符", + "mode": "模式", + "modeRaw": "源码", + "modeLivePreview": "实时预览", + "modePreview": "预览", "previewCode": "预览代码", "previewScreenshot": "预览截图", "previewJson": "预览 JSON", + "sendRequest": "发送请求", "fontSizeIncrease": "增大字体", "fontSizeDecrease": "减小字体", - "fontSizeReset": "重置字体大小", - "mode": "Mode", - "modeRaw": "Raw", - "modeLivePreview": "Live Preview", - "modePreview": "Preview" + "fontSizeReset": "重置字体大小" }, "markdown": { "label": "Markdown", @@ -85,11 +105,7 @@ "label": "开发者工具" }, "window": { - "label": "Window", - "minimize": "Minimize" - }, - "file": { - "label": "File", - "new": "New" + "label": "窗口", + "minimize": "最小化" } } diff --git a/src/main/i18n/locales/zh_CN/messages.json b/src/main/i18n/locales/zh_CN/messages.json index e11d22d0..66eddf46 100644 --- a/src/main/i18n/locales/zh_CN/messages.json +++ b/src/main/i18n/locales/zh_CN/messages.json @@ -1,44 +1,132 @@ { "confirm": { - "delete": "您确定要删除 \"{{name}}\" 吗?", - "deletePermanently": "您确定要永久删除 \"{{name}}\" 吗?", - "deleteConfirmMultipleSnippets": "您确定要永久删除已选择的 {{count}} 个代码片段吗?", - "emptyTrash": "您确定要永久删除回收站中的所有代码片段吗?", + "delete": "确定要删除 \"{{name}}\" 吗?", + "deleteVariable": "确定要删除变量 \"{{name}}\" 吗?", + "deleteUnnamedVariable": "确定要删除该变量吗?", + "unprotectHttpSecret": "确定要停止保护 \"{{name}}\" 吗?", + "deletePermanently": "确定要永久删除 \"{{name}}\" 吗?", + "deleteConfirmMultipleSnippets": "确定要永久删除选中的 {{count}} 个代码片段吗?", + "emptyTrash": "确定要永久清空回收站中的所有代码片段吗?", + "convertTaskToNote": "确定要将任务 \"{{name}}\" 转换成笔记吗?", + "moveVaultOverwrite": [ + "确定要覆盖所选目录吗?", + "所选目录不为空。当前库的内容将会覆盖该目录下的现有内容。" + ], "migrateToMarkdown": [ - "Migrate to Markdown Vault?", - "The selected vault will be overwritten with the current SQLite library." + "确定要迁移至 Markdown 仓库吗?", + "当前 SQLite 数据库中的内容将会覆盖所选仓库。" + ], + "vaultDoctorApply": [ + "应用仓库修复?", + "massCode 将自动执行安全的元数据修复,并应用您选中的重复 ID 处理方案. 未选中的冲突项将被跳过。" ] }, "success": { "copied": "已复制到剪贴板", - "migrateToMarkdown": "Migrated to Markdown Vault. Folders: {{folders}}, snippets: {{snippets}}, tags: {{tags}}.", - "vaultLoaded": "Vault successfully loaded." + "migrateToMarkdown": "已迁移至 Markdown 仓库。文件夹:{{folders}},代码片段:{{snippets}},标签:{{tags}}。", + "vaultMoved": "仓库已成功移除。", + "vaultLoaded": "仓库已成功加载。", + "licenseActivated": "许可证已激活。感谢您对 massCode 的支持!", + "noteExported": "笔记已成功导出。", + "noteFolderSiteExported": "笔记文件夹已导出为 HTML 站点。", + "vaultDoctorApplied": "仓库医生应用了 {{count}} 个修复。", + "vaultDoctorClean": "仓库医生没有发现任何问题。" }, "warning": { "noUndo": "此操作无法撤消。", + "httpSecretToPlainText": "其值将以纯文本形式存放在环境,因此将存储在仓库中并与之同步。", "allSnippetsMoveToTrash": "此文件夹中的所有代码片段将被移至回收站。", + "taskPropertiesRemoved": "任务状态、优先级和截止日期将被移除。", "deleteTag": "这也将导致所有带有该标签的代码片段移除此标签。", "createDb": "请选择其他文件夹", "htmlCssPreview": "添加HTML片段以查看结果。添加CSS进行样式设计,添加JavaScript实现交互功能。", "codeBlockRenderer": [ "使用 Codemirror 时,代码块设置的语言必须对应", "languages" - ] + ], + "vaultDoctorConflicts": "仓库:{{count}} 个同步冲突待关注", + "vaultDoctorReview": "审查", + "vaultDoctorNotReady": "仓库仍在与云存储同步中。稍后请尝试再次扫描。", + "cloudFileNotReady": "此文件仍在从云存储同步中。请稍后重试。" }, "error": { - "migration": "Auto-migration from SQLite failed: {{error}}" + "migration": "从 SQLite 自动迁移失败:{{error}}", + "secretNameRequired": "在保存值之前,请为机密变量输入一个名称。", + "secretEnvironmentMissing": "该环境已不存在。", + "secretEncryptionUnavailable": "无法存储机密变量:该系统没有可用的操作系统加密功能。", + "secretSaveFailed": "保存机密变量失败。", + "secretRevealFailed": "读取机密变量失败。它可能已被其他操作系统用户保存。", + "entryNameEmpty": "名称不能为空。", + "entryNameLeadingDot": "名称不能以点字符(.)开头。", + "entryNameInvalidChars": "名称不能包含以下字符:{{- chars}}", + "entryNameTrailingDot": "名称不能以点字符(.)结尾。", + "entryNameWindowsReserved": "该名称为 Windows 系统保留名称。", + "entryNameNoteConflict": "此文件夹中已存在同名笔记。", + "entryNameSnippetConflict": "此文件夹中已存在同名代码片段。", + "entryNameRequestConflict": "此文件夹中已存在同名请求。", + "entryNameFolderConflict": "当前层级下已存在同名文件夹。", + "vaultPathRequired": "需填写仓库路径", + "licenseInvalid": "无效的许可证密钥", + "noteExportFailed": "笔记导出失败。", + "noteFolderSiteExportFailed": "笔记文件夹导出失败" }, "description": { - "storageVault": "Choose the vault directory. To sync between devices, select a folder in iCloud Drive, Google Drive or Dropbox.", - "language": "To apply language changes, you need to reload the app.", - "migrateSqliteUtility": "If you have a massCode.db file from a previous version, use this utility to import your data into the current Markdown Vault." + "storageVault": "请选择仓库目录。如需在多设备间同步,请选择 iCloud Drive、Google Drive 或 Dropbox 中的文件夹。", + "language": "应用语言更改需要重新加载应用程序。", + "migrateSqliteUtility": "如果您有旧版本的 massCode.db 文件,请使用此工具将数据导入当前的 Markdown 仓库。" }, "special": { "unsponsored": "未赞助" }, + "donations": { + "trigger": { + "copy": { + "code": "累计复制 {{count}} 个代码片段 🚀", + "http": "累计复制 {{count}} 条 HTTP 请求 🚀", + "notes": "累计复制 {{count}} 篇笔记 🚀", + "math": "累计复制 {{count}} 个计算结果 🚀", + "tools": "累计复制 {{count}} 个工具输出 🚀", + "drawings": "累计复制 {{count}} 幅绘图 🚀" + }, + "created": { + "code": "累计创建 {{count}} 个代码片段 🎉", + "http": "累计创建 {{count}} 条 HTTP 请求 🎉", + "notes": "累计创建 {{count}} 篇笔记 🎉", + "math": "累计创建 {{count}} 个计算工作表 🎉", + "drawings": "累计创建 {{count}} 幅绘图 🎉" + }, + "sent": { + "http": "累计发送 {{count}} 条 HTTP 请求 🚀" + }, + "streak_7": { + "title": "连续打卡 7 天 🔥" + }, + "streak_30": { + "title": "massCode 已陪您度过 30 天 🎊" + }, + "streak_100": { + "title": "massCode 已陪您度过 100 天 🏆" + } + }, + "body": { + "full": "Hi,我是 Anton 👋\nInmassCode 是由我独自一人开发并维护的。如果它对你的工作有所帮助,请支持一下这个项目,让它能够继续成长。", + "short": "喜欢 massCode 吗?支持一下这个项目吧,让它能够继续成长。" + }, + "actions": { + "support": "支持", + "dismiss": "先用用看" + } + }, "release": {}, "update": { - "available": "版本 {{newVersion}} 现已可供下载。\n您的版本是 {{oldVersion}}。", - "noAvailable": "目前没有可用的更新。" + "available": "版本 {{newVersion}} 现已可供下载。\n您当前的版本是 {{oldVersion}}。", + "noAvailable": "当前没有可用更新。", + "downloading": "新版本 v{{version}} 正在后台下载中。准备就绪后将提示您重启应用。", + "availableToast": "发现新版本", + "goToGitHub": "前往 GitHub", + "downloaded": "新版本 v{{version}} 已准备就绪。请重启 massCode 以应用更新。", + "restart": "重启应用", + "whatsNewToast": "查看 massCode v{{version}} 的新功能", + "releaseNotes": "版本日志" } } diff --git a/src/main/i18n/locales/zh_CN/preferences.json b/src/main/i18n/locales/zh_CN/preferences.json index 6f7e0bc5..c225161f 100644 --- a/src/main/i18n/locales/zh_CN/preferences.json +++ b/src/main/i18n/locales/zh_CN/preferences.json @@ -2,110 +2,179 @@ "label": "首选项", "storage": { "section": { - "main": "Main", - "migration": "Migration" + "main": "常规", + "migration": "迁移" }, "label": "存储", - "migrateSqliteToMarkdown": "Migrate to Markdown Vault", - "count": "数量", - "vaultPath": "Vault Path" + "migrateSqliteToMarkdown": "迁移到 Markdown 仓库", + "moveVault": "移动仓库", + "movingVault": "正在移动仓库...", + "count": "总计", + "vaultPath": "仓库路径", + "vaultDoctor": { + "label": "仓库医生", + "description": "扫描保险库以检查元数据问题、同步冲突并进行安全修复。", + "scan": { + "label": "检查仓库", + "action": "扫描仓库", + "scanning": "正在扫描..." + }, + "apply": { + "action": "应用修复", + "applying": "正在应用..." + }, + "summary": { + "safe": "安全修复", + "conflicts": "冲突", + "blocked": "已阻止", + "warnings": "警告" + }, + "conflicts": "需决定", + "decisions": { + "duplicateId": "重复ID:{{id}}", + "files": "文件:{{count}}", + "progress": "{{selected}}/{{total}} 已解决", + "choose": "选择一个文件保留此ID。其余 {{count}} 个文件将获得新的唯一ID。", + "original": "原文件", + "copy": "副本", + "keepsId": "保留ID {{id}}", + "newId": "新ID" + }, + "reason": { + "merge-markers": "合并标记", + "invalid-frontmatter": "无效的 Frontmatter", + "conflicted-copy": "副本冲突" + }, + "assetWarnings": { + "NOTES_LEGACY_ASSET": { + "message": "{{assetName}} 仍存储在旧版笔记资源目录中。", + "recommendation": "保持整个仓库同步,待迁移完成后再次扫描。" + }, + "NOTES_ASSET_MIGRATION_PENDING": { + "message": "{{assetName}} 在本地不可用,无法进行迁移检查", + "recommendation": "使该资源在本地可用,然后再次扫描仓库" + }, + "NOTES_ASSET_DESTINATION_CONFLICT": { + "message": "{{assetName}} 在旧版与当前笔记资源目录中存在差异。", + "recommendation": "比较两个文件并留下正确的副本" + }, + "NOTES_ASSET_MISSING": { + "message": "{{assetName}} 在旧版与当前笔记资源目录中均缺失。", + "recommendation": "将资源恢复到仓库,或从笔记中移除其引用。" + } + }, + "moreWarnings": "+{{count}} 个更多警告", + "warnings": "警告" + } }, "editor": { - "label": "编辑器", + "label": "代码编辑器", "fontSize": { "label": "字体大小", - "description": "Base font size in pixels for the code editor." + "description": "代码编辑器的基本字体大小(以像素为单位)。" }, "fontFamily": { - "label": "字体", - "description": "Monospace font for the code editor. Use commas for fallbacks." + "label": "字体系列", + "description": "代码编辑器的等宽字体。请使用半角逗号分隔备用字体。" }, "wrap": { - "label": "换行", - "description": "Line wrapping to fit the editor width or allow horizontal scrolling.", + "label": "自动换行", + "description": "自动换行以适应编辑器宽度,或允许水平滚动。", "wordWrap": "自动换行", "off": "关闭" }, "tabSize": { "label": "缩进大小", - "description": "Number of spaces per tab character for indentation." + "description": "每个制表符对应的缩进空格数。" }, "showInvisibles": "显示不可见字符", "highlightLine": { - "label": "高亮当前行", - "description": "Visual highlight on the line where the cursor is positioned." + "label": "高亮光标所在行", + "description": "光标所在行视觉高亮。" }, "highlightGutter": "高亮行号", "matchBrackets": { "label": "匹配括号", - "description": "Matching bracket highlighting near the cursor." + "description": "高亮光标附近的匹配括号。" }, "prettier": { "label": "Prettier", "trailingComma": { "label": "尾随逗号", - "description": "Trailing commas in multi-line structures when formatting.", + "description": "格式化时,在多行结构中添加尾随逗号。", "none": "无", "all": "全部", "es5": "ES5" }, "semi": { "label": "分号", - "description": "Semicolons at the end of every statement." + "description": "在每个语句的末尾添加分号。" }, "singleQuote": { "label": "单引号", - "description": "Single quotes instead of double quotes." + "description": "使用单引号而不是双引号。" } } }, "notesEditor": { - "label": "Note Editor", + "label": "笔记编辑器", "fontSize": { - "label": "Font Size", - "description": "Base font size in pixels for the notes editor." + "label": "字体大小", + "description": "笔记编辑器的基本字体大小(以像素为单位)。" }, "fontFamily": { - "label": "Text Font", - "description": "CSS font-family value. Use commas to specify fallbacks." + "label": "字体系列", + "description": "CSS 的 font-family 属性值。请使用半角逗号分隔备用字体。" }, "codeFontFamily": { - "label": "Monospace Font", - "description": "Font for inline code and fenced code blocks." + "label": "等宽字体", + "description": "内联代码和围栏代码块的字体。请使用半角逗号分隔备用字体。" }, "lineHeight": { - "label": "Line Height", - "description": "Spacing between lines. Relaxed is easier to read, compact fits more content.", - "compact": "Compact (1.4)", - "default": "Default (1.54)", - "relaxed": "Relaxed (1.7)" + "label": "行高", + "description": "行间距。宽松的间距更易于阅读,紧凑的间距可容纳更多内容。", + "compact": "紧凑 (1.4)", + "default": "默认 (1.54)", + "relaxed": "宽松 (1.7)" }, "indentSize": { - "label": "Indent Size", - "description": "Number of spaces per indent level for lists and nested content." + "label": "缩进大小", + "description": "列表和嵌套内容中每个缩进级别的空格数。" }, "limitWidth": { - "label": "Limit Width", - "description": "Constrain content to a comfortable reading width (700px)." + "label": "限制宽度", + "description": "将内容约束在舒适的阅读宽度(700像素)。" + }, + "wrapTables": { + "label": "表格单元格自动换行", + "description": "对表格单元格内的文本进行自动换行,以确保超宽表格能够完整显示在编辑器内。较窄的表格则保持其原本宽度。" }, "lineNumbers": { - "label": "Line Numbers", - "description": "Show line numbers in the gutter. Only available in Raw mode." + "label": "行号", + "description": "在行号区域显示行号。仅在源码模式下生效。" } }, "appearance": { "label": "外观", + "dockBadge": { + "label": "Dock 图标计数器", + "none": "不要显示", + "codeInbox": "代码收件箱", + "notesInbox": "笔记收件箱", + "tasksDue": "今日待办任务", + "permissionDenied": "macOS 阻止了 Dock 计数器。请在系统设置中允许 massCode 的通知和角标。未签名的开发构建版本可能不支持 Dock 角标。" + }, "theme": { "label": "主题", - "builtIn": "Built-in", - "custom": "Custom", - "themesDir": "Themes Directory", - "openDir": "Open Themes Directory", - "createTemplate": "Create Theme Template", - "dirDescription": "Place your JSON theme files in this folder.", + "builtIn": "内置", + "custom": "自定义", + "themesDir": "主题目录", + "openDir": "打开主题目录", + "createTemplate": "创建主题模板", + "dirDescription": "将 JSON 格式主题文件放在此目录下", "light": "浅色", "dark": "深色", - "system": "System" + "system": "跟随系统" } }, "language": { @@ -115,11 +184,123 @@ "label": "Markdown", "codeRenderer": "代码块渲染器" }, + "math": { + "label": "计算草稿本", + "locale": { + "label": "区域", + "description": "数字和日期显示格式。" + }, + "decimalPlaces": { + "label": "小数位数", + "description": "结果中保留的最大小数位数(0–14)。" + }, + "dateFormat": { + "label": "日期格式", + "description": "结果中日期的显示格式。" + }, + "currencyRates": { + "label": "货币汇率", + "description": "缓存 1 小时", + "refresh": "刷新", + "refreshing": "正在刷新...", + "refreshed": "货币汇率已更新", + "refreshError": "更新货币汇率失败" + }, + "cryptoRates": { + "label": "加密货币汇率", + "description": "缓存 1 小时。速率限制:10–30 次请求/分钟。", + "refresh": "刷新", + "refreshing": "正在刷新...", + "refreshed": "加密货币汇率已更新", + "rateLimited": "超出速率限制。请稍后再试。" + } + }, + "tasks": { + "label": "任务", + "autoCleanup": { + "label": "自动清理已完成任务", + "description": "按计划将已完成任务移至回收站。它们会保留在回收站中,直到您清空。", + "never": "从不", + "1d": "每天", + "7d": "每 7 天", + "30d": "每 30 天" + }, + "cleanupNow": { + "label": "立即清理", + "button": "将已完成任务移至回收站", + "description": "立即将所有已完成任务移动到回收站。" + } + }, + "http": { + "label": "HTTP 客户端", + "wrapLines": { + "label": "自动换行", + "description": "对 HTTP 预览、请求体和响应查看器中的长文本行进行自动换行。" + }, + "defaultPreviewFormat": { + "label": "默认预览格式", + "description": "请求预览面板中默认选择的格式。", + "http": "HTTP", + "curl": "cURL" + }, + "autoSwitchToResponse": { + "label": "发送后显示响应", + "description": "当请求开始或完成时,自动将底部面板切换至“响应”标签页。" + }, + "sslCertificateVerification": { + "label": "SSL 证书验证", + "description": "发送 HTTPS 请求时验证 SSL 证书。关闭此项以允许使用无效或自签名的证书。" + } + }, "api": { "label": "API", "port": { "label": "API 端口", "description": "API 服务器的端口号(需要重启应用程序才能生效)。有效范围:1024-65535。" + }, + "integrations": { + "label": "外部集成", + "enabled": { + "label": "启用 API 外部集成", + "description": "允许外部本地客户端使用受保护的集成端点。" + }, + "token": { + "label": "API 令牌", + "description": "在外部客户端中使用此令牌。完整令牌仅在生成后显示一次", + "empty": "未生成任何令牌", + "generate": "生成令牌", + "revoke": "撤销令牌" + } + } + }, + "supporter": { + "label": "支持者", + "status": { + "label": "状态", + "active": "支持者许可证处于激活状态", + "activeFor": "支持者许可证已为 {{name}} 激活。", + "description": "感谢您支持 massCode!捐赠提示已为您关闭。" + }, + "key": { + "label": "许可证密钥", + "placeholder": "粘贴您的支持者密钥", + "activate": "激活", + "description": "粘贴您捐赠后收到的密钥。激活过程可在离线状态下进行,并会移除捐赠提示。" + }, + "request": { + "label": "还未获得密钥?", + "action": "申请密钥", + "description": "如果您曾通过任何渠道向 massCode 捐赠过,请通过邮件发送任意捐赠凭证,您将收到一个密钥。" + } + }, + "updates": { + "label": "更新", + "autoUpdate": { + "label": "自动更新", + "description": "后台下载更新,并在应用重启时安装。禁用后,massCode 只会告知你有新版本。大版本更新永远不会自动安装。" + }, + "version": { + "label": "当前版本" } } } diff --git a/src/main/i18n/locales/zh_CN/ui.json b/src/main/i18n/locales/zh_CN/ui.json index c0a78c27..541e91fb 100644 --- a/src/main/i18n/locales/zh_CN/ui.json +++ b/src/main/i18n/locales/zh_CN/ui.json @@ -9,32 +9,350 @@ "library": "库", "fragment": "片段" }, + "commandPalette": { + "title": "命令面板", + "description": "搜索空间、代码片段、笔记和 HTTP 请求。", + "placeholder": "搜索或运行命令...", + "commandPlaceholder": "运行命令...", + "scopedPlaceholder": "在 {{space}} 空间搜索...", + "clearScope": "清除搜搜索范围", + "clearFilter": "清除筛选器:{{filter}}", + "searching": "正在搜索...", + "empty": "未找到结果", + "groups": { + "recent": "最近使用", + "actions": "动作", + "spaces": "空间", + "filters": "筛选器", + "results": "结果", + "snippets": "代码片段", + "notes": "笔记", + "httpRequests": "HTTP 请求" + }, + "actions": { + "importSnippets": "导入代码片段", + "importSnippetsSubtitle": "导入 VS Code 代码片段 JSON、Raycast 代码片段 JSON、SnippetsLab JSON 或公共 GitHub Gist URL", + "importNotes": "导入笔记", + "importNotesSubtitle": "导入 Obsidian Markdown 目录", + "newSnippet": "新建代码片段", + "newSnippetSubtitle": "创建一个代码片段", + "newNote": "新建笔记", + "newNoteSubtitle": "创建一条笔记", + "newHttpRequest": "新建 HTTP 请求", + "newHttpRequestSubtitle": "创建一条 HTTP 请求", + "newCodeFolder": "新建代码文件夹", + "newCodeFolderSubtitle": "在代码空间中创建一个文件夹", + "newNotesFolder": "新建笔记文件夹", + "newNotesFolderSubtitle": "在笔记空间中创建一个文件夹", + "newHttpFolder": "新建 HTTP 文件夹", + "newHttpFolderSubtitle": "在 HTTP 空间中创建一个文件夹", + "importHttpCollection": "导入 HTTP 集合", + "importHttpCollectionSubtitle": "导入 OpenAPI、Postman 或 Bruno 集合文件", + "openPreferences": "打开首选项", + "openPreferencesSubtitle": "更改 massCode 设置" + }, + "fallbacks": { + "createSnippet": "创建代码片段 \"{{- query}}\"", + "createSnippetSubtitle": "在代码收件箱内创建", + "createNote": "创建笔记 \"{{- query}}\"", + "createNoteSubtitle": "在笔记收件箱内创建", + "createHttpRequest": "创建 HTTP 请求 \"{{- query}}\"", + "createHttpRequestFromUrl": "从 URL 创建 HTTP 请求", + "createHttpRequestSubtitle": "在 HTTP 空间中创建" + }, + "suggestions": { + "tagSubtitle": "按标签在 {{space}} 空间筛选", + "folderSubtitle": "按文件夹在 {{space}} 空间筛选" + }, + "actionPanel": { + "heading": "动作", + "open": "打开", + "run": "执行", + "copyTitle": "复制标题", + "copySnippetContent": "复制代码片段", + "copyHttpUrl": "复制 URL" + }, + "footer": { + "open": "打开", + "jump": "跳转", + "actions": "动作", + "apply": "应用", + "run": "执行", + "back": "回退" + } + }, + "imports": { + "title": { + "code": "导入代码片段", + "notes": "导入笔记" + }, + "description": { + "code": "导入 VS Code 代码片段 JSON、Raycast 代码片段 JSON、SnippetsLab JSON 或公共 GitHub Gist 链接。", + "notes": "导入 Obsidian Markdown 文件夹。" + }, + "action": { + "import": "导入" + }, + "sources": { + "vscode-snippets": "VS Code", + "raycast-snippets": "Raycast", + "snippetslab": "SnippetsLab", + "github-gists": "GitHub Gists", + "obsidian": "Obsidian" + }, + "gistUrl": "Gist 链接", + "gistUrlPlaceholder": "https://gist.github.com/user/id", + "filesTitle": "选择导入文件", + "folderTitle": "选择导入目录", + "fileHint": "将文件拖拽至此区域,或选择文件以预览导入内容。", + "folderHint": "选择一个 Obsidian Markdown 目录以预览导入内容。", + "chooseFiles": "选择文件", + "chooseFolder": "选择目录", + "preview": "预览", + "previewing": "正在读取导入内容", + "noReadableFiles": "未找到可读文件。请将目录下载到本地或检查文件权限,然后重试。", + "noImportableFiles": "未找到可导入的 Markdown 文件", + "snippets": "代码片段", + "notes": "笔记", + "tags": "标签", + "detectedSource": "已检测到的源", + "folderMeta_one": "{{count}} 项", + "folderMeta_other": "{{count}} 项", + "warningTitle": "警告", + "warningMessages": { + "file": { + "readFailed": "无法读取文件。请确保文件已下载到本地且可供 massCode 访问。" + }, + "fs": { + "folderReadFailed": "无法读取目录。请检查文件权限和 iCloud 下载状态。", + "fileReadFailed": "无法读取文件。请检查文件权限和 iCloud 下载状态。" + }, + "source": { + "unsupported": "不支持的导入来源。" + }, + "vscode": { + "invalidJson": "文件不是有效的 VS Code 代码片段 JSON 对象。", + "entryNotObject": "Snippet entry 不是一个对象。", + "invalidBody": "代码片段 body 必须是字符串或字符串数组。" + }, + "raycast": { + "invalidExport": "文件不是有效的 Raycast 代码片段导出。", + "emptyText": "代码片段文本为空或缺失。" + }, + "snippetslab": { + "invalidExport": "文件不是有效的 SnippetsLab 导出。", + "smartGroupsSkipped": "SnippetsLab 的 Smart Groups 将被忽略。", + "attachmentsSkipped": "SnippetsLab 的 Fragment 附件将被忽略。", + "emptySnippet": "此 SnippetsLab Snippet 没有可导入的 Fragments." + }, + "gist": { + "noFiles": "GitHub Gist 中没有文件。", + "truncatedSkipped": "此导入版本中已跳过被截断的 Gist 文件。", + "contentMissing": "Gist 文件内容缺失。" + }, + "obsidian": { + "excalidrawSkipped": "已跳过 Excalidraw Markdown 文件。", + "emptyMarkdown": "Markdown 文件为空。", + "frontmatterIgnored": "已忽略 Frontmatter 字段:{{fields}}。", + "attachmentsKept": "附件引用以文本形式保留;附件不会被导入。", + "wikiLinksKept": "Obsidian Wiki 链接以文本形式导入,未进行重写。", + "noMarkdownFiles": "未在 Obsidian 导入目录中找到 Markdown 文件。", + "invalidFrontmatter": "无法解析 Frontmatter,已将其作为笔记内容导入。" + }, + "unknown": "导入警告。" + }, + "import": "导入", + "importing": "正在导入...", + "importedSnippets_one": "已导入 {{snippets}} 个代码片段。", + "importedSnippets_other": "已导入 {{snippets}} 个代码片段。", + "importedNotes_one": "已导入 {{notes}} 篇笔记。", + "importedNotes_other": "Imported {{notes}} 篇笔记。", + "createdFolder": "已创建:{{name}}", + "error": "导入失败" + }, "spaces": { - "label": "Spaces", + "label": "空间", "code": { - "label": "Code", - "tooltip": "Code snippets", - "title": "Code Snippets", + "label": "代码", + "tooltip": "代码片段", + "title": "代码片段", "allSnippets": "所有代码片段" }, "notes": { - "label": "Notes", - "tooltip": "Notes", - "title": "Notes", - "allNotes": "All Notes" + "label": "笔记", + "tooltip": "笔记", + "title": "笔记", + "allNotes": "所有笔记" }, "math": { - "label": "Math", - "tooltip": "Math notebook", - "title": "Math Notebook", - "sheetList": "Sheet List", - "newSheet": "New Sheet", - "untitled": "Untitled", - "currencyUnavailable": "Currency rates service unavailable" + "label": "计算", + "tooltip": "计算草稿本", + "title": "计算草稿本", + "sheetList": "草稿列表", + "newSheet": "新建草稿", + "searchPlaceholder": "搜索草稿…", + "noResults": "未找到相关草稿", + "untitled": "未命名草稿", + "currencyUnavailable": "汇率服务不可用", + "cloudSyncing": "正在同步云端数据…" + }, + "drawings": { + "label": "绘图", + "tooltip": "Excalidraw 绘图", + "title": "绘图", + "drawingList": "绘图列表", + "newDrawing": "新建绘图", + "searchPlaceholder": "搜索绘图…", + "noResults": "未找到绘图", + "fitToContent": "适应内容", + "exportImage": "导出图片…", + "copyLinkForNote": "复制笔记引用链接", + "openInSpace": "在绘图空间打开", + "notFound": "未找到绘图", + "noSelected": "未选择绘图" + }, + "http": { + "label": "HTTP", + "tooltip": "HTTP 客户端", + "title": "HTTP 客户端", + "allRequests": "所有请求", + "untitledRequest": "未命名的请求", + "empty": "没有请求", + "noUrl": "No URL", + "action": { + "import": "导入", + "newRequest": "新建请求", + "newEnvironment": "新建环境", + "manageEnvironments": "管理环境", + "deleteEnvironment": "删除环境" + }, + "environments": { + "title": "环境", + "none": "不使用环境", + "activeTooltip": "环境:{{name}}", + "selectTooltip": "选择环境", + "manage": "管理环境…", + "empty": "没有环境", + "untitled": "未命名环境", + "namePlaceholder": "自定义环境名称", + "variables": "变量", + "noVariables": "没有变量", + "varKey": "变量名称", + "varValue": "值", + "varSecret": "机密", + "secretHint": "该值仅在此设备上加密存储,不会保存在仓库中", + "secretUnavailable": "此系统没有可用于机密变量的操作系统加密功能", + "secretNotSet": "在此设备上未设置", + "secretKeyLocked": "如需重命名机密变量,请删除后重新添加", + "revealSecret": "显示明文", + "hideSecret": "隐藏明文", + "addSecret": "添加机密变量", + "addVariable": "添加变量", + "noEnvironmentSelected": "选择一个环境以编辑变量" + }, + "import": { + "title": "导入 HTTP 集合", + "description": "导入 OpenAPI JSON/YAML、Postman Collection v2.1 JSON、Postman Environment JSON 以及 Bruno OpenCollection YAML 或 ZIP 文件。", + "formats": "选择导入文件", + "postman": "Postman 集合", + "postmanHint": "选择一个集合 JSON 文件,并可选择附加一个环境 JSON 文件。", + "fileHint": "拖拽文件至此区域,或选择文件以预览导入内容。", + "chooseFiles": "选择文件", + "previewing": "正在读取文件", + "collections": "集合", + "requests": "请求", + "environments": "环境", + "collectionMeta": "{{folders}} 个文件夹,{{requests}} 个请求", + "variablesMeta": "{{variables}} 个变量", + "plainTextNotice": "环境变量将以纯文本形式存储在保险库中", + "warnings": "警告", + "import": "导入", + "importing": "正在导入", + "imported": "已导入 {{requests}} 个集合中的 {{collections}} 个请求。", + "createdFolders": "已创建:{{names}}", + "error": "导入失败" + }, + "editor": { + "noSelected": "未选择请求", + "namePlaceholder": "自定义请求名称", + "urlPlaceholder": "输入请求 URL", + "send": "发送", + "tabs": { + "params": "参数", + "headers": "请求头", + "body": "请求体", + "auth": "鉴权", + "description": "描述" + }, + "keyValue": { + "key": "键", + "value": "值", + "description": "描述", + "addRow": "添加行", + "empty": "无条目" + }, + "body": { + "typeNone": "无", + "typeJson": "JSON", + "typeText": "Text", + "typeFormUrlencoded": "Form URL-encoded", + "typeMultipart": "Multipart form-data", + "placeholder": "输入请求体", + "fieldType": { + "text": "文本", + "file": "文件" + }, + "filePlaceholder": "选择文件路径", + "jsonInvalid": "无效的 JSON" + }, + "auth": { + "typeNone": "无鉴权", + "typeBearer": "Bearer Token", + "typeBasic": "Basic Auth", + "token": "Token", + "tokenPlaceholder": "输入 Token", + "username": "用户名", + "usernamePlaceholder": "输入用户名", + "password": "密码", + "passwordPlaceholder": "输入密码", + "plainTextHint": "鉴权值以纯文本形式存储在保险库中。对于敏感数据,请创建机密环境变量并引用为 {{API_KEY}}。" + }, + "description": { + "placeholder": "为此请求添加描述" + }, + "panels": { + "preview": "预览", + "response": "响应" + }, + "preview": { + "empty": "没有可预览的请求", + "formats": { + "http": "HTTP", + "curl": "cURL" + } + }, + "response": { + "empty": "还未收到响应", + "executing": "发送请求", + "status": "状态", + "time": "用时", + "size": "大小", + "tabs": { + "body": "响应体", + "headers": "响应头" + }, + "error": "请求失败", + "noResponse": "请求未获得响应", + "truncated": "响应被截断", + "binaryNotice": "不显示二进制响应", + "copy": "复制", + "copied": "已复制" + } + } }, "tools": { - "label": "Tools", - "tooltip": "Developer tools" + "label": "工具", + "tooltip": "开发者工具" } }, "snippet": { @@ -43,15 +361,189 @@ "noSelected": "未选择代码片段" }, "notes": { - "untitled": "Untitled note", - "plural": "Notes", - "words": "Words", - "symbols": "Symbols", - "selectedMultiple": "{{count}} Notes Selected", - "noSelected": "No Note Selected" + "untitled": "未命名笔记", + "plural": "笔记", + "words": "字数", + "symbols": "字符数", + "selectedMultiple": "{{count}} 已选的笔记", + "noSelected": "未选择任何笔记", + "editor": { + "menu": { + "format": { + "title": "格式", + "bold": "加粗", + "italic": "斜体", + "strikethrough": "删除线", + "highlight": "高亮", + "code": "代码", + "link": "链接", + "clearFormatting": "清除格式" + }, + "paragraph": { + "title": "段落", + "bulletList": "无序列表", + "numberedList": "有序列表", + "taskList": "任务列表", + "heading": "{{level}} 级标题", + "body": "正文", + "quote": "引用" + }, + "insert": { + "title": "插入", + "table": "表格", + "callout": "标注", + "horizontalRule": "分割线", + "codeBlock": "代码块" + }, + "table": { + "title": "表格", + "insertRowAbove": "在上方插入行", + "insertRowBelow": "在下方插入行", + "deleteRow": "删除行", + "insertColumnLeft": "在左侧插入列", + "insertColumnRight": "在右侧插入列", + "deleteColumn": "删除列", + "alignLeft": "左对齐", + "alignCenter": "居中对齐", + "alignRight": "右对齐" + } + }, + "table": { + "addColumn": "在右侧添加列", + "addRow": "在下方添加行" + } + }, + "tasks": { + "title": "任务", + "today": "今天的", + "upcoming": "即将到来的", + "completed": "已完成的", + "convertToTask": "转换为任务", + "convertToNote": "转换为笔记", + "duePlaceholder": "截止日期", + "clearDue": "清除截止日期", + "noDue": "无截止日期", + "cleanupCompleted": "清理已完成任务", + "cleanupConfirmTitle": "清理已完成任务?", + "cleanupConfirmMessage": "所有已完成任务将被移至回收站。在清空回收站之前,您可以恢复它们。", + "cleanupDone": "已将 {{count}} 个已完成任务移至回收站", + "cleanupEmpty": "无待清理的已完成任务", + "cleanupError": "清理已完成任务失败", + "status": { + "todo": "待办", + "inProgress": "进行中", + "done": "已完成", + "blocked": "已阻塞" + }, + "priority": { + "label": "优先级", + "none": "无优先级", + "low": "低", + "medium": "中", + "high": "高" + } + }, + "dashboard": { + "label": "仪表盘", + "title": "笔记仪表盘", + "description": "您的笔记活动、链接和结构。", + "empty": "所有仪表盘小组件已隐藏。", + "error": "加载笔记仪表盘失败。", + "actions": { + "refresh": "刷新", + "backToDashboard": "返回仪表盘", + "showAllWidgets": "显示所有小组件" + }, + "widgets": { + "title": "可见小组件", + "description": "选择仪表盘上要展示的模块。", + "stats": "概览", + "activityHeatmap": "活动热力图", + "recent": "最近笔记", + "graphPreview": "笔记关系图谱", + "topLinked": "最多链接笔记" + }, + "stats": { + "title": "概览", + "notes": "笔记", + "words": "字数", + "folders": "文件夹", + "tags": "标签" + }, + "activity": { + "heatmapTitle": "活动热力图", + "heatmapDescription": "按日统计的近期笔记更新。", + "updatedToday": "今日更新", + "updatedWeek": "7 天内更新", + "less": "更少", + "more": "更多", + "totalLastYear": "最近 53 周内累计 {{count}} 次笔记更新", + "tooltipUpdates": "{{count}} 次笔记更新" + }, + "recent": { + "title": "最近笔记", + "empty": "暂无最近笔记。" + }, + "graphPreview": { + "title": "笔记关系图谱", + "empty": "笔记间尚无链接。" + }, + "topLinked": { + "title": "最多链接笔记", + "empty": "暂无链接笔记。", + "incoming": "{{count}} 条入链" + }, + "graph": { + "title": "笔记关系图谱", + "description": "探索笔记之间的连接,并在工作区中打开它们。", + "hint": "拖动以平移,使用缩放按钮或鼠标滚轮缩放,悬停节点以查看它的邻居。", + "meta": "{{links}} 条入链 · {{neighbors}} 条连接的笔记", + "empty": "笔记间尚无链接。", + "error": "加载笔记关系图谱失败。" + } + } }, "folder": { - "untitled": "未命名文件夹" + "untitled": "未命名文件夹", + "iconPicker": { + "searchPlaceholder": "搜索图标...", + "emojiSearchPlaceholder": "搜索表情符号...", + "iconSearchPlaceholder": "搜索图标...", + "emptyResults": "未找到图标", + "emptyEmojiResults": "未找到表情符号", + "uploadImage": "上传 JPG 或 PNG", + "replaceImage": "选择其他", + "applyImage": "使用图片", + "uploading": "正在处理图片...", + "uploadTitle": "添加自定义图片", + "uploadHint": "将 JPG 或 PNG 拖放至此区域,或选择文件。最大尺寸:10 MB。", + "tabs": { + "emoji": "表情符号", + "icons": "图标", + "upload": "上传" + }, + "emojiCategories": { + "people": "人物", + "nature": "自然", + "food": "饮食", + "activities": "活动", + "travel": "旅行与地点", + "objects": "物品", + "symbols": "符号", + "flags": "旗帜" + }, + "errors": { + "unsupportedFormat": "请选择 JPG 或 PNG 图片。", + "fileTooLarge": "图片大小不能超过 10 MB。", + "processingFailed": "图片处理失败,请重试。", + "updateFailed": "无法更新文件夹图标。" + }, + "filters": { + "all": "全部", + "material": "Material", + "lucide": "Lucide" + } + } }, "button": { "back": "返回", @@ -59,6 +551,7 @@ "confirm": "确认", "copy": "复制", "fit": "适应", + "generate": "生成", "saveAs": "另存为", "update": [ "前往 GitHub", @@ -70,7 +563,7 @@ "toggleDarkMode": "切换深色模式", "background": "背景", "goToDownload": "前往下载", - "goToSettings": "Go to Settings", + "goToSettings": "前往设置", "refreshPreview": "刷新预览", "laserPointer": "激光指针", "fullscreen": "全屏", @@ -79,6 +572,7 @@ }, "action": { "close": "关闭", + "clearSearch": "清除搜索", "defaultLanguage": "默认语言", "duplicate": "复制", "rename": "重命名", @@ -89,15 +583,17 @@ "hide": "隐藏", "showSidebar": "显示侧边栏", "hideSidebar": "隐藏侧边栏", - "showSidebarAndList": "Show Sidebar and List", - "hideSidebarAndList": "Hide Sidebar and List", + "showSidebarAndList": "显示侧边栏和列表", + "hideSidebarAndList": "隐藏侧边栏和列表", "new": { "storage": "新建存储", "folder": "新建文件夹", "snippet": "新建代码片段", "fragment": "新建片段", - "note": "New Note" + "note": "新建笔记", + "task": "新建任务" }, + "createOptions": "创建选项", "add": { "description": "添加描述", "tag": "添加标签", @@ -114,12 +610,12 @@ "fromFavorites": "从收藏中移除" }, "reveal": { - "inFinder": "Reveal in Finder", - "inFileManager": "Show in File Manager" + "inFinder": "在访达中显示", + "inFileManager": "在文件管理器中显示" }, "reload": { "storage": "重新加载存储", - "app": "Reload massCode" + "app": "重新加载 massCode" }, "delete": { "common": "删除", @@ -132,24 +628,56 @@ "fromV3": "从 massCode v3 导入" }, "export": { - "toHtml": "导出为 HTML" + "folderToHtmlSite": "将文件夹导出为 HTML 站点", + "toHtml": "导出为 HTML", + "toPdf": "导出为 PDF" }, "copy": { - "snippetLink": "复制代码片段链接" + "snippet": "复制代码片段", + "snippetLink": "复制代码片段链接", + "note": "复制笔记", + "noteLink": "复制笔记引用链接", + "request": "复制请求", + "requestLink": "复制请求引用链接" }, "select": { - "directory": "Select Directory" + "directory": "选择目录" + } + }, + "internalLinks": { + "picker": { + "searchPlaceholder": "搜索代码片段、HTTP 请求和笔记...", + "emptyResults": "无结果", + "groups": { + "snippets": "代码片段", + "httpRequests": "HTTP 请求", + "notes": "笔记" + } + }, + "missing": { + "snippet": "未找到代码片段", + "httpRequest": "未找到 HTTP 请求", + "note": "未找到笔记" } }, "placeholder": { "emptyTagList": "在代码片段中添加标签以在此处查看", - "emptyNotesTagList": "Add tags to notes to see them here", + "emptyNotesTagList": "在笔记中添加标签以在此处查看", "emptyFoldersList": "没有文件夹", "emptySnippetsList": "没有代码片段", - "emptyNotesList": "No Notes", - "searchNotes": "Search notes...", - "emptySheetList": "No Sheets", + "emptyNotesList": "没有笔记", + "searchNotes": "搜索笔记...", + "emptySheetList": "没有草稿", + "emptyDrawingsList": "没有绘图", "search": "搜索", - "addTag": "添加标签" + "searchIn": "在 {{- context}} 中搜索", + "addTag": "添加标签", + "selectLanguage": "选择语言" + }, + "cloudDownloads": { + "downloading": "正在从云存储下载文件:剩余 {{count}} 个", + "failed": "从云存储下载文件失败:{{count}} 个", + "itemPending": "正在从云存储下载…", + "label": "云端下载" } }