export const zhCN = { common: { search: "搜索...", create: "新建", new: "新建", cancel: "取消", delete: "删除", edit: "编辑", theme: "主题", signOut: "退出登录", noMatches: "未找到匹配项", tryDifferentSearch: "尝试使用不同的搜索词。", light: "浅色", dark: "深色", system: "系统", loading: "加载中...", note: "笔记", insight: "洞察", newSource: "新建来源", newNotebook: "新建笔记本", newPodcast: "新建播客", language: "语言", english: "English", chinese: "简体中文", japanese: "日本語", french: "Français", russian: "Русский", bengali: "বাংলা", source: "来源", notebook: "笔记本", podcast: "播客", quickActions: "快捷操作", quickActionsDesc: "导航、搜索、提问、主题", appName: "Open Notebook", add: "添加", remove: "移除", confirm: "确认", warning: "警告", error: "操作失败", success: "操作成功", model: "模型", back: "返回", next: "下一步", done: "完成", processing: "处理中...", creating: "创建中...", linked: "已关联", adding: "正在添加...", addSelected: "添加所选", customModel: "自定义模型", failed: "失败", current: "当前", save: "保存", writeNote: "撰写笔记", batchMode: "批量模式", optional: "可选", type: "类型", title: "标题", created: "创建于 {time}", updated: "更新于 {time}", actions: "快捷操作", noResults: "未找到结果", references: "引用", refreshPage: "请重试刷新页面", refresh: "刷新", aiGenerated: "AI 生成", human: "人类", unknown: "未知", notes: "笔记", chat: "聊天", deleteForever: "永久删除", connectionError: "连接错误", unableToConnect: "无法连接到 API 服务器", retryConnection: "重试连接", diagnosticInfo: "诊断信息", version: "版本", built: "构建时间", apiUrl: "API 地址", frontendUrl: "前端地址", checkConsoleLogs: "请检查浏览器控制台获取详细日志(搜索 🔧 [Config] 消息)", yes: "是", no: "否", saving: "正在保存...", description: "描述", saveToNote: "保存到笔记", copyToClipboard: "复制到剪贴板", close: "关闭", insights: "见解", progress: "进度", deleting: "正在删除...", created_label: "创建时间", updated_label: "更新时间", download: "下载", saveChanges: "保存更改", name: "名称", default: "默认", nameRequired: "这是必填项", modelConfiguration: "模型配置", resetToDefault: "重置为默认", reasoning: "推理过程", searchTerms: "搜索词", strategy: "策略", individualAnswers: "独立回答 ({count})", finalAnswer: "最终回答", notebookLabel: "笔记本: {name}", itemNotFound: "未找到该 {type}", accessibility: { transformationViews: "转换视图", searchKB: "向知识库提问或搜索", enterQuestion: "输入您的问题以询问知识库", enterSearch: "输入搜索词", searchKBBtn: "搜索知识库", podcastViews: "播客视图", ytVideo: "YouTube 视频", askResponse: "提问回答", searchNotebooks: "搜索笔记本", }, url: "URL", errorDetails: "错误详情", editTransformation: "编辑转换规则", retry: "重试", traditionalChinese: "繁体中文", portuguese: "葡萄牙语", completed: "已完成", saveSuccess: "保存成功", contextModes: { off: "未包含在聊天中", insights: "仅限见解", full: "全部内容", clickToCycle: "点击循环切换", }, clickToEdit: "点击编辑", }, apiErrors: { notebookNotFound: "找不到笔记本", sourceNotFound: "找不到源文件", transformationNotFound: "找不到转换规则", fileUploadFailed: "文件上传失败", urlRequired: "链接类型需要提供 URL", contentRequired: "文本类型需要提供内容", invalidSourceType: "无效的源类型", processingFailed: "处理失败", failedToQueue: "排队处理失败", invalidSortBy: "排序字段必须是 'created' 或 'updated'", invalidSortOrder: "排序方向必须是 'asc' 或 'desc'", accessDenied: "文件访问被拒绝", fileNotFoundOnServer: "服务器上找不到该文件", searchFailed: "搜索失败", askFailed: "提问失败", pleaseEnterQuestion: "请输入问题", pleaseConfigureModels: "请配置所有必选模型", failedToCreateSession: "创建对话失败", failedToUpdateSession: "更新会话失败", failedToDeleteSession: "删除会话失败", failedToSendMessage: "发送消息失败", unauthorized: "无权访问,请检查您的密码", invalidPassword: "密码错误", embeddingModelRequired: "此功能需要嵌入模型。请在模型设置中配置一个。", strategyModelNotFound: "未找到策略模型", answerModelNotFound: "未找到回答模型", finalAnswerModelNotFound: "未找到最终回答模型", noAnswerGenerated: "未能生成回答", genericError: "发生了意外错误", }, connectionErrors: { apiTitle: "无法连接到 API 服务器", apiDesc: "无法访问 Open Notebook API 服务器", dbTitle: "数据库连接失败", dbDesc: "API 服务器正在运行,但无法访问数据库", troubleshooting: "这通常意味着:", apiUnreachable1: "API 服务器未运行", apiUnreachable2: "API 服务器运行在不同的地址", apiUnreachable3: "网络连接问题", dbFailed1: "SurrealDB 未运行", dbFailed2: "数据库连接设置不正确", dbFailed3: "API 与数据库之间的网络问题", quickFixes: "快速修复:", setApiUrl: "设置 API_URL 环境变量:", checkSurreal: "检查 SurrealDB 是否运行:", seeDocumentation: "有关详细设置说明,请参阅:", docLink: "Open Notebook 文档", showTechnical: "显示技术细节", attemptedUrl: "尝试的 URL", message: "消息", technicalDetails: "技术细节", stackTrace: "堆栈跟踪", retryLabel: "重试连接", retryHint: "按 R 或点击按钮重试", dockerLabel: "对于 Docker", localDevLabel: "对于本地开发", }, auth: { loginTitle: "Open Notebook", loginDesc: "输入密码以访问应用程序", passwordPlaceholder: "密码", signingIn: "正在登录...", signIn: "登录", connectErrorHint: "无法连接到服务器。请检查 API 是否正在运行。", }, navigation: { collect: "采集", process: "处理", create: "创作", manage: "管理", sources: "来源", notebooks: "笔记本", askAndSearch: "询问与搜索", podcasts: "播客", models: "模型", transformations: "转换", transformation: "转换", settings: "设置", advanced: "高级", nav: "导航", language: "切换语言", theme: "主题", ask: "提问", }, notebooks: { title: "笔记本", newNotebook: "创建笔记本", searchPlaceholder: "搜索笔记本...", archived: "已归档", archive: "归档", unarchive: "取消归档", deleteNotebook: "删除笔记本", deleteNotebookDesc: "您确定要删除 \"{name}\" 吗?此操作无法撤销。", deleteNotebookLoading: "正在加载删除预览...", deleteNotebookNotes: "{count} 个笔记将被永久删除。", deleteNotebookNoNotes: "没有要删除的笔记。", deleteNotebookExclusiveSources: "{count} 个来源仅存在于此笔记本中。", deleteNotebookSharedSources: "{count} 个来源与其他笔记本共享,将被取消关联。", deleteNotebookNoSources: "此笔记本中没有来源。", deleteExclusiveSourcesLabel: "删除专属来源", keepExclusiveSourcesLabel: "取消关联并保留", activeNotebooks: "活动的笔记本", archivedNotebooks: "归档的笔记本", notFound: "未找到笔记本", notFoundDesc: "请求的笔记本不存在。", updated: "已更新", namePlaceholder: "笔记本名称", addDescription: "添加描述...", noNotesYet: "暂无笔记", deleteNote: "删除笔记", deleteNoteConfirm: "确定要删除此笔记吗?此操作无法撤销。", noteCreatedSuccess: "笔记创建成功", failedToCreateNote: "创建笔记失败", noteUpdatedSuccess: "笔记更新成功", failedToUpdateNote: "更新笔记失败", noteDeletedSuccess: "笔记删除成功", failedToDeleteNote: "删除笔记失败", createNew: "创建新笔记本", createNewDesc: "输入名称和可选描述以开始。", descPlaceholder: "在此添加有关此笔记本的更多信息...", createSuccess: "笔记本创建成功", updateSuccess: "笔记本更新成功", deleteSuccess: "笔记本删除成功", }, sources: { title: "来源", add: "添加来源", addNew: "添加新来源", addExisting: "添加现有来源", delete: "删除来源", statusPreparing: "正在准备", statusQueued: "已排队", statusProcessing: "正在处理", statusCompleted: "已完成", statusFailed: "处理失败", statusPreparingDesc: "准备处理中", statusQueuedDesc: "等待处理", statusProcessingDesc: "正在处理内容", statusCompletedDesc: "处理成功", statusFailedDesc: "处理失败", failedToLoad: "加载来源失败", allSourcesDesc: "在此查看所有来源。您可以添加新来源或管理现有来源。", allSources: "所有来源", insights: "见解", yes: "是", no: "否", loadingMore: "正在加载更多...", noSourcesYet: "暂无来源", allSourcesDescShort: "在此查看所有来源。", cannotSaveNoteNoNotebook: "无法保存笔记:缺少笔记本 ID", createFirstSource: "添加您的第一个来源开始构建知识库。", deleteSourceConfirm: "确定要删除此来源吗?", deleteConfirm: "确定要删除吗?", deleteConfirmWithTitle: "确定要删除 \"{title}\" 吗?", deleteSuccess: "来源删除成功。注意:要从存储中删除文件,必须在设置页面中启用“删除文件”选项。", failedToDelete: "删除来源失败", sourceQueued: "来源已加入队列", sourceQueuedDesc: "来源已提交进行后台处理。您可以在来源列表中监控进度。", sourceAddedSuccess: "来源添加成功", failedToAddSource: "添加来源失败", sourceUpdatedSuccess: "来源更新成功", failedToUpdateSource: "更新来源失败", sourceDeletedSuccess: "来源删除成功", failedToDeleteSource: "删除来源失败", fileUploadedSuccess: "文件上传成功", failedToUploadFile: "文件上传失败", sourceRequeued: "来源重试已加入队列", sourceRequeuedDesc: "来源已重新加入处理队列。", failedToRetry: "重试失败", sourcesAddedToNotebook: "{count} 个来源已添加到笔记本", failedToAddSourcesToNotebook: "添加来源到笔记本失败", partialAddSuccess: "{success} 个来源已添加,{failed} 个失败", sourceRemovedFromNotebook: "来源已成功从笔记本中移除", failedToRemoveSourceFromNotebook: "从笔记本中移除来源失败", removeConfirm: "确定要从此笔记本移除吗?", checking: "正在检查...", untitledSource: "未命名来源", maxItems: "最多 {count} 个", insightsCount: "{count} 条见解", details: "详情", detailsTitle: "来源详情", content: "内容", metadata: "元数据", type: { link: "链接", file: "文件", text: "文本", }, id: "来源 ID", topics: "主题", embedded: "已嵌入向量", notEmbedded: "未嵌入向量", embedContent: "嵌入内容", embedding: "正在嵌入...", alreadyEmbedded: "已嵌入", downloadFile: "下载文件", fileUnavailable: "文件不可用", preparing: "正在准备...", generateNewInsight: "生成新见解", selectTransformation: "选择转换规则...", noInsightsYet: "暂无见解", createFirstInsight: "使用上方的转换规则创建您的第一个见解", viewInsight: "查看见解", deleteInsight: "删除见解", deleteInsightConfirm: "确定要删除此见解吗?此操作无法撤销。", insightGenerationStarted: "见解生成已开始,稍后将显示。", editNote: "编辑笔记", createNote: "创建笔记", addTitle: "添加标题...", untitledNote: "无标题笔记", writeNotePlaceholder: "在此处编写您的笔记内容...", saveNote: "保存笔记", createNoteBtn: "创建笔记", createFirstNote: "创建您的第一条笔记,记录见解与观察。", urlLabel: "URL(s) *", fileLabel: "文件(s) *", textContentLabel: "文本内容 *", enterUrlsPlaceholder: "每行输入一个 URL\nhttps://example.com/article1\nhttps://example.com/article2", batchUrlHint: "粘贴多个 URL(每行一个)进行批量导入", invalidUrlsDetected: "检测到无效的 URL:", lineLabel: "第 {line} 行", fixInvalidUrls: "请修正或移除无效的 URL 以继续", selectMultipleFilesHint: "选择多个文件进行批量导入。支持:文档 (PDF, DOC, DOCX, PPT, XLS, EPUB, TXT, MD),媒体 (MP4, MP3, WAV, M4A),图片 (JPG, PNG),归档 (ZIP)", selectedFiles: "已选择文件:", textPlaceholder: "在此处粘贴或输入您的内容...", htmlDetected: "检测到 HTML 内容。处理后将转换为 Markdown。", titlePlaceholder: "为您的来源起一个描述性的标题", batchTitlesAuto: "将为每个来源自动生成标题。", batchCommonSettings: "同样的笔记本和转换将应用于所有项目。", urlsCount: "{count} 个 URL", filesCount: "{count} 个文件", addSource: "添加来源", notEmbeddedAlert: "内容未嵌入向量", notEmbeddedDesc: "此内容尚未为了向量搜索进行嵌入。嵌入可以启用高级搜索功能并更好地发现内容。", openOnYoutube: "在 YouTube 上打开", urlCopied: "URL 已复制到剪贴板", viewSource: "查看来源", noInsightSelected: "未选择见解", sourceInsight: "来源见解", manageNotebooks: "管理所属笔记本", manageNotebooksDesc: "管理包含此来源的笔记本", noNotebooksAvailable: "暂无可用笔记本", loadFailed: "加载来源详情失败", removeFromNotebook: "从笔记本移除", retryProcessing: "重试处理", deleteSource: "删除来源", retry: "重试", addExistingTitle: "添加现有来源", addExistingDesc: "从您的所有笔记本中选择已有的来源添加到当前笔记本。", searchPlaceholder: "通过名称或 URL 搜索来源...", noNotebooksFound: "未找到笔记本。", showingFirst100: "仅显示前 100 个来源。请使用搜索功能查找特定来源。", selectedCount: "已选择 {count} 个来源", added: "已添加于 {date}", addUrl: "添加 URL", uploadFile: "上传文件", enterText: "输入文本", processDescription: "内容将经过处理并由 AI 分析。", processingFiles: "正在处理您的文件...", titleRequired: "文本内容必须提供标题", titleGenerated: "如果留空,将根据内容自动生成标题", batchCount: "将处理 {count} 个{type}", enableEmbedding: "启用搜索向量嵌入", embeddingDesc: "允许此来源在向量搜索和 AI 查询中被检索", embeddingAlways: "已自动启用嵌入", embeddingAlwaysDesc: "您的设置已配置为始终对内容进行向量嵌入。", embeddingNever: "嵌入已禁用", embeddingNeverDesc: "您的设置已配置为跳过嵌入。此来源将无法进行向量搜索。", changeInSettings: "您可以在此处更改设置:", notFound: "未找到来源", noContent: "暂无内容", insightsDesc: "根据模型分析生成的见解", uploadedFile: "已上传文件", fileUnavailableDesc: "由于存储系统原因,此文件目前不可用。", batchSuccess: "成功创建 {count} 个来源", batchFailed: "全部 {count} 个来源创建失败", batchPartial: "{success} 个成功,{failed} 个失败", submittingSource: "正在提交来源进行处理...", processingBatchSources: "正在处理 {count} 个来源,请稍候...", processingSource: "正在处理您的来源,请稍候...", maxFilesAllowed: "每批最多允许 {count} 个文件", }, chat: { sessions: "会话", sessionTitlePlaceholder: "在此输入标题...", noSessions: "暂无会话", deleteSession: "删除会话", deleteSessionDesc: "确定要删除此聊天会话吗?此操作无法撤销。", sendPlaceholder: "向您的来源提问...", sessionsTitle: "对话列表", chatWith: "与{name}对话", startConversation: "开始针对{type}进行对话", askQuestions: "提出问题以更好地理解内容", pressToSend: "按 {key} 发送", model: "模型", createToStart: "创建一个会话以开始。", chatWithNotebook: "与笔记本对话", unableToLoadChat: "无法加载聊天", noDescription: "暂无描述", startByCreating: "从创建您的第一个笔记本开始,组织您的研究。", messagesCount: "{count} 条消息", sessionCreated: "聊天会话已创建", sessionUpdated: "会话已更新", sessionDeleted: "会话已删除", }, searchPage: { askAndSearch: "提问与搜索", chooseAMode: "选择模式", askBeta: "提问 (beta)", search: "搜索", askYourKb: "向您的知识库提问 (beta)", askYourKbDesc: "大语言模型将根据您知识库中的文档回答您的查询。", question: "问题", enterQuestionPlaceholder: "输入您的问题...", pressToSubmit: "按 Cmd/Ctrl+Enter 提交", noEmbeddingModel: "您无法使用此功能,因为尚未选择嵌入模型。请在模型页面设置一个。", usingCustomModels: "正在使用自定义模型", usingDefaultModels: "正在使用默认模型", advanced: "高级", strategy: "策略", answer: "回答", final: "最终", ask: "提问", processing: "处理中...", saveToNotebooks: "保存到笔记本", searchDesc: "在您的知识库中搜索特定的关键字或概念", enterSearchPlaceholder: "输入搜索查询...", pressToSearch: "按 Enter 键搜索", searchType: "搜索类型", vectorSearchWarning: "向量搜索需要嵌入模型。目前仅文本搜索可用。", textSearch: "文本搜索", vectorSearch: "向量搜索", searchIn: "搜索范围", searchSources: "搜索来源", searchNotes: "搜索笔记", resultsFound: "{count} 个结果", matches: "匹配项 ({count})", noResultsFor: "未找到 “{query}” 的结果", notSet: "未设置", saveToNotebook: "保存到笔记本", saveSuccess: "成功保存到笔记本", saveError: "保存到笔记本失败", selectNotebook: "选择笔记本", searchAndAsk: "搜索与提问", searchResultsFor: "搜索 “{query}”", askAbout: "提问关于 “{query}”", orSearchKb: "或搜索您的知识库", saving: "保存中...", advancedModelTitle: "高级模型选择", advancedModelDesc: "为提问过程的每个阶段选择特定的模型", strategyModel: "策略模型", answerModel: "回答模型", finalAnswerModel: "最终回答模型", selectStrategyPlaceholder: "选择策略模型", selectAnswerPlaceholder: "选择回答模型", selectFinalPlaceholder: "选择最终回答模型", saveChanges: "保存更改", processingQuestion: "正在处理您的问题...", }, podcasts: { generateEpisode: "生成播客单集", generateEpisodeDesc: "在生成新的播客单集之前,选择要包含的内容并配置单集详情。", content: "内容", contentDesc: "选择要包含在此单集中的笔记本、来源和笔记。", itemsSelected: "{count} 个项目已选择", tokens: "{count} token", chars: "{count} 字符", loadingNotebooks: "正在加载笔记本...", noNotebooksFoundInPodcasts: "未找到笔记本。在生成播客之前,请先创建一个笔记本并添加内容。", noContentSelected: "未选择内容", summary: "摘要", fullContent: "全部内容", untitledSource: "未命名来源", untitledNote: "未命名笔记", episodeSettings: "单集设置", episodeProfile: "单集简介", episodeProfilePlaceholder: "选择单集简介", episodeName: "单集名称", episodeNamePlaceholder: "例如:AI 与工作的未来", additionalInstructions: "附加指令", instructionsPlaceholder: "任何要追加到单集简讯的补充建议...", generating: "正在生成...", generate: "生成", hostPlaceholder: "主持人 {number}", profileRequired: "需要单集简介", profileRequiredDesc: "在生成播客之前,请选择一个单集简介。", nameRequired: "需要单集名称", nameRequiredDesc: "请为单集提供一个名称。", addContext: "添加上下文", addContextDesc: "至少选择一个来源或笔记包含在单集中。", generationFailed: "播客生成失败", speakerProfile: "主持人简介", usesSpeakerProfile: "使用主持人简介", sources: "来源", notes: "笔记", noSources: "此笔记本中没有可用的来源。", noNotes: "此笔记本中没有可用的笔记。", selectMode: "选择模式", buildContextFailed: "构建上下文失败。请检查您的选择。", podcastTaskStarted: "播客生成任务已开始", loadingProfiles: "正在加载单集简介...", noProfilesFound: "未找到单集简介。在生成播客之前,请先创建一个单集简介。", listTitle: "播客", listDesc: "跟踪生成的单集并管理可重复使用的简介。", chooseAView: "选择视图", episodesTab: "单集", templatesTab: "配置", overviewTitle: "单集概览", overviewDesc: "监控播客生成任务并查看最终成品。", generateBtn: "生成播客", total: "总计", processingLabel: "处理中", completedLabel: "已完成", failedLabel: "失败", pendingLabel: "排队中", loadErrorTitle: "加载单集失败", loadErrorDesc: "无法获取最新的播客单集。请稍后重试。", loadingEpisodes: "正在加载单集...", noEpisodesYet: "暂无播客单集。从笔记本或来源聊天界面开始生成您的第一个单集。", statusRunningTitle: "正在处理中", statusRunningDesc: "正在活跃生成资产的单集。", statusPendingTitle: "排队中 / 待处理", statusPendingDesc: "已提交并在等待开始处理的单集。", statusCompletedTitle: "已完成单集", statusCompletedDesc: "可以查看、下载或发布。", statusFailedTitle: "失败单集", statusFailedDesc: "在生成过程中遇到问题的单集。", templatesWorkspaceTitle: "简介工作区", templatesWorkspaceDesc: "构建可重复使用的单集和发言人配置,以实现快速的播客制作。", howTemplatesPowerTitle: "简介如何驱动播客生成", howTemplatesPowerDesc: "简介将播客工作流拆分为两个可重复使用的构建块。在生成新单集时可以随时混合搭配它们。", episodeProfilesSetFormat: "单集简介设定格式", episodeProfilesList1: "概述分段数量及故事流向", episodeProfilesList2: "选择用于简报、大纲和脚本编写的语言模型", episodeProfilesList3: "存储默认简报,以便每个单集都以一致的基调开始", speakerProfilesBringVoices: "发言人简介赋予声音生命", speakerProfilesList1: "选择文字转语音库及模型", speakerProfilesList2: "记录每个发言人的性格、背景故事和发音说明", speakerProfilesList3: "在不同的单集格式中重复使用相同的主持人或嘉宾声音", recommendedWorkflow: "推荐工作流", workflowStep1: "为您需要的每个声音创建发言人简介", workflowStep2: "构建按名称引用这些发言人的单集简介", workflowStep3: "通过选择适合故事的单集简介来生成播客", workflowHint: "单集简介按名称引用发言人简介,因此从发言人开始可以避免以后缺少声音指派。", failedToLoadTemplates: "加载简介数据失败", failedToLoadTemplatesDesc: "请确保 API 正在运行并重试。某些部分可能不完整。", loadingTemplates: "正在加载简介...", speakerProfilesTitle: "发言人简介", speakerProfilesDesc: "为生成的单集配置声音和性格。", createSpeaker: "创建发言人", noSpeakerProfiles: "暂无发言人简介。创建一个以使单集简介可用。", noDescription: "未提供描述。", usedByCount_one: "被 1 个单集使用", usedByCount_other: "被 {count} 个单集使用", usedByCount: "被 {count} 个单集使用", unused: "未使用", voiceId: "声音 ID", backstory: "背景故事", personality: "性格", edit: "编辑", duplicate: "复制", deleteSpeakerProfileTitle: "删除发言人简介?", deleteSpeakerProfileDesc: "删除 “{name}” 无法撤销。", deleteSpeakerDisabledHint: "在删除之前,请先从单集简介中移除该发言人。", deleting: "正在删除...", episodeProfilesTitle: "单集简介", episodeProfilesDesc: "为您播客定义可重复使用的生成设置。", createProfile: "创建简介", createSpeakerFirst: "在添加单集简介之前,请先创建一个发言人简介。", noEpisodeProfiles: "暂无单集简介。创建一个以启动播客生成。", speakerCreated: "发言人配置已创建", speakerCreatedDesc: "发言人配置已准备就绪。", failedToCreateSpeaker: "创建发言人配置失败", speakerUpdated: "发言人配置已更新", speakerUpdatedDesc: "更改已成功保存。", failedToUpdateSpeaker: "更新发言人配置失败", speakerDeleted: "发言人配置已删除", speakerDeletedDesc: "配置已成功移除。", failedToDeleteSpeaker: "删除发言人配置失败", speakerDuplicated: "发言人配置已复制", speakerDuplicatedDesc: "已创建配置副本。", failedToDuplicateSpeaker: "复制发言人配置失败", generationStarted: "播客启动生成", generationStartedDesc: "剧集 \"{name}\" 正在创建中。", failedToStartGeneration: "启动播客生成失败", tryAgainMoment: "请稍后再试。", deleteProfileTitle: "删除简介?", deleteProfileDesc: "这将移除 “{name}”。现有单集将保留其数据,但新单集将不再使用此配置。", profileCreated: "剧集配置已创建", profileCreatedDesc: "新的剧集配置已准备就绪。", failedToCreateProfile: "创建剧集配置失败", profileUpdated: "剧集配置已更新", profileUpdatedDesc: "更改已成功保存。", failedToUpdateProfile: "更新剧集配置失败", profileDeleted: "剧集配置已删除", profileDeletedDesc: "配置已成功移除。", failedToDeleteProfile: "删除剧集配置失败", failedToDeleteProfileDesc: "请确保配置未在使用中并重试。", profileDuplicated: "剧集配置已复制", profileDuplicatedDesc: "已创建配置副本。", failedToDuplicateProfile: "复制剧集配置失败", episodeDeleted: "剧集已删除", episodeDeletedDesc: "播客剧集已成功移除。", failedToDeleteEpisode: "删除剧集失败", failedToDeleteSpeakerDesc: "请确保配置未在使用中并重试。", outlineModel: "大纲模型", transcriptModel: "脚本模型", segments: "分段数量", defaultBriefingTitle: "默认简报", created: "创建于 {time}", details: "详情", summaryTab: "总结", outlineTab: "大纲", transcriptTab: "脚本", briefing: "内容简报", noOutline: "暂无大纲。", noTranscript: "暂无脚本。", deleteEpisodeTitle: "删除单集?", deleteEpisodeDesc: "这将永久移除 “{name}” 及其音频文件。", audioUnavailable: "音频不可用", segment: "分段", speaker: "发言人", profile: "简介", link: "链接", file: "文件", embedded: "已嵌入", notEmbedded: "未嵌入", noSpeakerProfilesAvailable: "没有可用的发言人简介", editEpisodeProfile: "编辑单集简介", createEpisodeProfile: "创建单集简介", episodeProfileFormDesc: "定义单集生成的规则及默认使用的发言人配置。", noSpeakerProfilesDesc: "在配置单集简介之前,请先创建一个发言人简介。", profileName: "简介名称", profileNamePlaceholder: "例如:技术讨论", descriptionPlaceholder: "简要说明何时使用此简介", speakerConfig: "发言人配置", selectSpeakerProfile: "选择发言人简介", outlineGeneration: "大纲生成", transcriptGeneration: "文稿生成", defaultBriefingPlaceholder: "概述此单集格式的结构、语气和目标", editSpeakerProfile: "编辑发言人简介", createSpeakerProfile: "创建发言人简介", speakerProfileFormDesc: "配置文字转语音设置并定义最多四名发言人。", speakers: "发言人", speakersDesc: "为此简介配置一到四种声音。", addSpeaker: "添加发言人", speakerNumber: "发言人 {number}", backstoryPlaceholder: "发言人的简要传记或背景信息", personalityPlaceholder: "描述风格和语气", outlineModelRequired: "必须选择大纲模型", transcriptModelRequired: "必须选择文稿模型", defaultBriefingRequired: "必须填写默认简介", segmentsInteger: "必须是整数", segmentsMin: "至少包含 3 个分段", segmentsMax: "最多包含 20 个分段", voiceIdRequired: "必须填写声音 ID", backstoryRequired: "必须填写背景故事", personalityRequired: "必须填写性格描述", speakerCountMin: "至少需要一个发言人", speakerCountMax: "最多只能配置 4 个发言人", delete: "删除", failedToDelete: "删除播客失败", retry: "重试", retrying: "重试中…", retryStarted: "已开始重试", retryStartedDesc: "已提交新的播客生成任务。", failedToRetry: "重试失败", errorDetails: "错误详情", language: "语言", languagePlaceholder: "选择语言(可选)", podcastLanguage: "播客语言", selectOutlineModel: "选择大纲模型", selectTranscriptModel: "选择转录模型", voiceModel: "语音模型", voiceModelRequired: "语音模型为必填项", selectVoiceModel: "选择语音模型", perSpeakerTtsOverride: "每个发言人的TTS覆盖(可选)", useProfileDefault: "使用配置默认值", setupRequired: "需要配置", setupRequiredDesc: "部分配置尚未设置模型。请编辑它们以在生成播客之前选择模型。", notConfigured: "未配置", }, settings: { contentProcessing: "内容处理", contentProcessingDesc: "配置文档和 URL 的处理方式", docEngine: "文档处理引擎", docEnginePlaceholder: "选择文档处理引擎", urlEngine: "URL 处理引擎", urlEnginePlaceholder: "选择 URL 处理引擎", autoRecommended: "自动 (推荐)", simple: "Simple", docling: "Docling", helpMeChoose: "帮助我选择", docHelp: "· Docling: 速度稍慢但更准确,特别是包含表格和图像的文档。 · Simple: 直接提取内容而不进行格式化。 · 自动 (推荐): 优先尝试 Docling,失败则回退至 Simple。", firecrawl: "Firecrawl", jina: "Jina", urlHelp: "· Firecrawl: 强大的付费服务(有免费额度)。 · Jina: 优秀的备选方案,同样提供免费额度。 · Simple: 基础 HTTP 提取,在 JS 渲染的网站上可能会丢失内容。 · 自动 (推荐): 优先尝试 Firecrawl,其次 Jina,最后回退至 Simple。", embeddingAndSearch: "嵌入与搜索", embeddingAndSearchDesc: "配置搜索和向量嵌入选项", defaultEmbeddingOption: "默认嵌入选项", embeddingOptionPlaceholder: "选择嵌入选项", ask: "询问", always: "始终", never: "从不", embeddingHelp: "将内容进行向量嵌入可以让您和您的 AI 助手更容易找到它。如果您运行本地嵌入模型(如 Ollama),建议开启。对于在线服务商,只有在每天处理数百个文档时才需考虑成本。", fileManagement: "文件管理", fileManagementDesc: "配置文件的处理和存储选项", autoDeleteFiles: "自动删除文件", autoDeletePlaceholder: "选择自动删除选项", filesHelp: "文件处理完成后,原始件不再需要。建议开启自动删除以节省存储空间。除非您将其作为主要存储位置(不建议),否则请选择“是”。", loadFailed: "加载设置失败", }, advanced: { title: "高级工具", desc: "面向进阶用户的调试和实用工具", systemInfo: "系统信息", rebuildEmbeddings: "重建索引", rebuildEmbeddingsDesc: "为所有来源重建向量索引", currentVersion: "当前版本", latestVersion: "最新版本", status: "状态", updateAvailable: "版本 {version} 可用", updateAvailableDesc: "Open Notebook 的新版本可用。", upToDate: "已是最新", unknown: "未知", viewOnGithub: "在 GitHub 上查看", updateCheckFailed: "无法检查更新。GitHub 可能无法访问。", rebuild: { mode: "重建模式", existing: "仅现有项", all: "全部项", existingDesc: "仅重新嵌入已有向量的项(速度较快,适用于切换模型)", allDesc: "重新嵌入已有项 + 为缺失向量的项补全(速度较慢,较全面)", include: "包含在重建中", selectOneError: "请至少选择一种重建类型", starting: "正在启动重建...", startBtn: "开始重建", queued: "排队中", running: "正在提交任务...", completed: "任务已提交!", failed: "失败", leavePageHint: "您可以离开此页面,后台将继续运行", startNew: "开始新的重建", itemsProcessed: "{processed}/{total} 任务已提交 ({percent}%)", failedItems: "{count} 任务提交失败", time: "耗时", whenToRebuild: "我该何时重建索引?", whenToRebuildAns: "当您切换嵌入模型、升级模型版本、怀疑数据损坏或进行了大批量内容导入后,建议执行重建。", howLong: "重建需要多长时间?", howLongAns: "耗时取决于项目总数、模型速度和 API 速率限制。本地模型(如 Ollama)通常非常快。", isSafe: "在使用应用时重建安全吗?", isSafeAns: "是的,重建过程是安全的。它不会删除您的原始内容,仅会逐步替换向量数据。在大批量处理时,搜索速度可能会有轻微抖动。", }, }, transformations: { title: "内容转换规则", desc: "转换规则是用于让大模型处理来源并提取见解、摘要等的提示词。", workspace: "选择工作区", playground: "实验室", defaultPrompt: "默认全局提示词", defaultPromptDesc: "该提示词将被添加到您所有的转换提示词中", defaultPromptPlaceholder: "输入您的默认转换指令...", listTitle: "自定义转换", createNew: "新建转换", inputLabel: "输入文本", inputPlaceholder: "请输入要转换的文本...", outputLabel: "输出", runTest: "运行转换", running: "运行中...", selectToStart: "选择一个转换规则开始", name: "名称", namePlaceholder: "唯一标识符,例如 key_topics", titlePlaceholder: "显示名称,默认为名称", promptPlaceholder: "编写驱动此转换的提示词...", descriptionPlaceholder: "描述此转换的作用。", suggestDefault: "新来源默认建议", promptHint: "提示词应根据源内容编写。您可以要求模型总结、提取见解或生成表格等结构化输出。", createSuccess: "转换规则创建成功", updateSuccess: "转换规则更新成功", deleteSuccess: "转换规则删除成功", noTransformations: "暂无转换规则", createOne: "创建一个转换规则以开始", selectModel: "选择模型", deleteConfirm: "确定要删除此转换规则吗?", model: "模型", systemPrompt: "系统提示词", overrideModelDesc: "为此聊天会话覆盖默认模型。留空则使用系统默认。", sessionUseReplacement: "此会话将使用 {name} 而不是默认模型。", systemDefault: "系统默认", }, models: { embedding: "嵌入模型", tts: "文字转语音", stt: "语音转文字", apiKey: "API 密钥", deleteSuccess: "模型删除成功", saveSuccess: "模型保存成功", noModels: "暂无模型", discoverModels: "发现模型", noModelsFound: "未从此提供商找到模型", modelType: "模型类型", modelTypeHint: "选择要添加的模型类型。如果需要不同类型,请分批添加。", deleteModel: "删除模型", defaultAssignments: "默认模型分配", defaultAssignmentsDesc: "配置用于 Open Notebook 不同用途的默认模型", missingRequiredModels: "缺少必需的模型:{models}。如果没有这些模型,Open Notebook 可能无法正常运行。", selectModelPlaceholder: "选择一个模型", requiredModelPlaceholder: "⚠️ 必需 - 请选择一个模型", chatModelLabel: "聊天模型", chatModelDesc: "用于聊天对话", transformationModelLabel: "转换模型", transformationModelDesc: "用于摘要、见解和内容转换", toolsModelLabel: "工具模型", toolsModelDesc: "用于函数调用 - 推荐 OpenAI 或 Anthropic", largeContextModelLabel: "大上下文模型", largeContextModelDesc: "用于处理大文档 - 推荐 Gemini", embeddingModelLabel: "嵌入模型", embeddingModelDesc: "用于语义搜索和向量嵌入", ttsModelLabel: "文字转语音模型", ttsModelDesc: "用于生成播客", sttModelLabel: "语音转文字模型", sttModelDesc: "用于音频转录", embeddingChangeTitle: "嵌入模型变更", embeddingChangeConfirm: "您即将将嵌入模型从 {from} 更改为 {to}。", rebuildRequired: "重要提示:需要重建索引", rebuildReason: "更改嵌入模型需要重建所有现有嵌入以保持一致性。如果不重建,您的搜索可能会返回错误或不完整的结果。", whatHappensNext: "接下来会发生什么:", step1: "您的默认嵌入模型将被更新", step2: "在重新构建之前,现有的嵌入将保持不变", step3: "新内容将使用新的嵌入模型", step4: "您应该尽快重新构建嵌入", proceedToRebuildPrompt: "您想现在前往“高级设置”页面开始重建索引吗?", changeModelOnly: "仅更改模型", changeAndRebuild: "更改并前往重建", autoAssign: "自动分配默认值", autoAssigning: "正在分配...", autoAssignSuccess: "已自动分配 {count} 个默认模型", autoAssignNoModels: "没有可分配的模型。请先同步模型。", autoAssignAlreadySet: "所有默认模型已配置", testModel: "测试模型", testModelSuccess: "模型测试通过", testModelFailed: "模型测试失败", searchOrAddModel: "搜索或输入模型名称...", addCustomModel: "添加 \"{name}\"", }, apiKeys: { title: "使用您自己的 API 密钥配置 AI", description: "将 API 密钥安全地存储在数据库中,以在 Open Notebook 中启用 AI 服务商。", encryptionRequired: "未配置加密密钥", encryptionRequiredDescription: "请将 OPEN_NOTEBOOK_ENCRYPTION_KEY 环境变量设置为任意密钥字符串,以启用将 API 密钥存储到数据库。", configured: "已配置", notConfigured: "未配置", migrationAvailable: "检测到环境变量", migrationDescription: "{count} 个 API 密钥通过环境变量配置,可以迁移到数据库以便于管理。", migrateToDatabase: "迁移到数据库", migrating: "迁移中...", migrationSuccess: "{count} 个 API 密钥迁移成功", migrationErrors: "{count} 个密钥迁移失败", migrationNothingToMigrate: "所有密钥已在数据库中", learnMore: "了解如何配置 API 密钥 →", testConnection: "测试连接", testSuccess: "连接成功", testFailed: "连接测试失败", syncModels: "同步模型", syncSuccess: "发现 {discovered} 个模型,新增 {new} 个", syncNoNew: "发现 {count} 个模型,全部已注册", syncFailed: "同步模型失败", getApiKey: "获取 API 密钥", vertexProject: "GCP 项目 ID", vertexLocation: "区域", vertexCredentials: "服务账户 JSON 路径", addConfig: "添加配置", editConfig: "编辑配置", deleteConfig: "删除配置", configName: "配置名称", configNameHint: "此配置的描述性名称(例如:'生产环境'、'开发环境')", baseUrl: "基础 URL", baseUrlOverrideHint: "仅在需要覆盖提供商默认 API 端点时更改此项。", deleteConfigConfirm: "确定要删除 '{name}' 吗?此操作无法撤销。", configSaveSuccess: "配置保存成功", configUpdateSuccess: "配置更新成功", configDeleteSuccess: "配置删除成功", apiKeyEditHint: "留空以保留现有 API 密钥", decryptionError: "解密错误", decryptionErrorDescription: "此凭证的 API 密钥无法解密。加密密钥可能已更改。请删除此凭证并使用正确的密钥重新创建。", }, setupBanner: { encryptionRequired: "未配置加密密钥", encryptionRequiredDescription: "请设置 OPEN_NOTEBOOK_ENCRYPTION_KEY 环境变量以启用安全凭据存储。", migrationAvailable: "API 密钥迁移可用", migrationDescription: "{count} 个服务商的 API 密钥通过环境变量设置。将它们迁移到数据库以便于管理。", goToSettings: "前往设置", viewDocs: "查看文档", }, }