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 金鑰",
  },
  setupBanner: {
    encryptionRequired: "未設定加密金鑰",
    encryptionRequiredDescription: "請設定 OPEN_NOTEBOOK_ENCRYPTION_KEY 環境變數以啟用安全憑據儲存。",
    migrationAvailable: "API 金鑰遷移可用",
    migrationDescription: "{count} 個供應商的 API 金鑰透過環境變數設定。將它們遷移到資料庫以便於管理。",
    goToSettings: "前往設定",
    viewDocs: "查看文件",
  },
}
