export const zhTW = { 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: "查看文件", }, }