- Credential.get_all() now uses per-row error handling instead of failing on first bad row - Broken credentials include decryption_error field with descriptive message - DELETE endpoint falls back to direct DB delete when credential can't be decrypted - Frontend shows amber warning alert for broken credentials with disabled test/edit/discover - Added i18n translation keys for decryption error warning in all 9 locales
929 lines
42 KiB
TypeScript
929 lines
42 KiB
TypeScript
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: "查看文件",
|
||
},
|
||
}
|