mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-09-29 07:05:14 -07:00
feat(i18n): add Traditional Chinese (zh-TW) locale
Adds a zh-TW translation with Taiwan vocabulary conventions (e.g. 預設 / 儲存 / 載入 / 匯入 / 匯出 / 設定 / 檔案 / 伺服器 / 裝置 / 網路). Registers it alongside en and zh-CN; the language dropdown picks it up automatically from SUPPORTED_LANGUAGES. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
976c6cbd8f
commit
0b6716d88d
@@ -3,10 +3,12 @@ import LanguageDetector from 'i18next-browser-languagedetector';
|
|||||||
import { initReactI18next } from 'react-i18next';
|
import { initReactI18next } from 'react-i18next';
|
||||||
import en from './locales/en/translation.json';
|
import en from './locales/en/translation.json';
|
||||||
import zhCN from './locales/zh-CN/translation.json';
|
import zhCN from './locales/zh-CN/translation.json';
|
||||||
|
import zhTW from './locales/zh-TW/translation.json';
|
||||||
|
|
||||||
export const SUPPORTED_LANGUAGES = [
|
export const SUPPORTED_LANGUAGES = [
|
||||||
{ code: 'en', label: 'English' },
|
{ code: 'en', label: 'English' },
|
||||||
{ code: 'zh-CN', label: '简体中文' },
|
{ code: 'zh-CN', label: '简体中文' },
|
||||||
|
{ code: 'zh-TW', label: '繁體中文' },
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
export type LanguageCode = (typeof SUPPORTED_LANGUAGES)[number]['code'];
|
export type LanguageCode = (typeof SUPPORTED_LANGUAGES)[number]['code'];
|
||||||
@@ -18,6 +20,7 @@ i18n
|
|||||||
resources: {
|
resources: {
|
||||||
en: { translation: en },
|
en: { translation: en },
|
||||||
'zh-CN': { translation: zhCN },
|
'zh-CN': { translation: zhCN },
|
||||||
|
'zh-TW': { translation: zhTW },
|
||||||
},
|
},
|
||||||
fallbackLng: 'en',
|
fallbackLng: 'en',
|
||||||
supportedLngs: SUPPORTED_LANGUAGES.map((l) => l.code),
|
supportedLngs: SUPPORTED_LANGUAGES.map((l) => l.code),
|
||||||
|
|||||||
@@ -0,0 +1,829 @@
|
|||||||
|
{
|
||||||
|
"common": {
|
||||||
|
"cancel": "取消",
|
||||||
|
"save": "儲存",
|
||||||
|
"delete": "刪除",
|
||||||
|
"edit": "編輯",
|
||||||
|
"close": "關閉",
|
||||||
|
"confirm": "確認",
|
||||||
|
"loading": "載入中…",
|
||||||
|
"error": "錯誤",
|
||||||
|
"unknown": "未知",
|
||||||
|
"unknownError": "未知錯誤"
|
||||||
|
},
|
||||||
|
"nav": {
|
||||||
|
"generate": "生成",
|
||||||
|
"stories": "故事",
|
||||||
|
"voices": "聲音",
|
||||||
|
"effects": "效果",
|
||||||
|
"audio": "音訊",
|
||||||
|
"models": "模型",
|
||||||
|
"settings": "設定",
|
||||||
|
"updateBadge": "更新"
|
||||||
|
},
|
||||||
|
"voicesTab": {
|
||||||
|
"title": "聲音",
|
||||||
|
"loading": "載入聲音中…",
|
||||||
|
"searchPlaceholder": "搜尋聲音……",
|
||||||
|
"newVoice": "新增聲音",
|
||||||
|
"avatarAlt": "{{name}} 的頭像",
|
||||||
|
"selectChannels": "選擇通道……",
|
||||||
|
"channelDefaultLabel": "{{name}}(預設)",
|
||||||
|
"columns": {
|
||||||
|
"name": "名稱",
|
||||||
|
"language": "語言",
|
||||||
|
"generations": "生成次數",
|
||||||
|
"samples": "樣本",
|
||||||
|
"effects": "效果",
|
||||||
|
"channels": "通道"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"voiceInspector": {
|
||||||
|
"loading": "載入中…",
|
||||||
|
"defaultEffectsHint": "自動套用於使用此聲音的新生成。",
|
||||||
|
"fields": {
|
||||||
|
"description": "描述"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"invalidImageFormat": "請選擇 PNG、JPG 或 WebP 格式",
|
||||||
|
"avatarUpdated": "頭像已更新",
|
||||||
|
"savedDescription": "\"{{name}}\" 已儲存。"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"audioChannels": {
|
||||||
|
"title": "音訊通道",
|
||||||
|
"newChannel": "新增通道",
|
||||||
|
"loading": "載入中…",
|
||||||
|
"confirmDelete": "刪除此通道?",
|
||||||
|
"noVoicesAssigned": "未指派聲音",
|
||||||
|
"selectDevice": "選擇裝置",
|
||||||
|
"addDevice": "新增裝置",
|
||||||
|
"addVoice": "新增聲音",
|
||||||
|
"defaultSuffix": "預設",
|
||||||
|
"empty": {
|
||||||
|
"message": "尚無音訊通道。建立您的第一個通道,將聲音路由到特定裝置。",
|
||||||
|
"action": "建立通道"
|
||||||
|
},
|
||||||
|
"labels": {
|
||||||
|
"outputDevices": "輸出裝置",
|
||||||
|
"assignedVoices": "已指派聲音"
|
||||||
|
},
|
||||||
|
"devices": {
|
||||||
|
"title": "可用裝置",
|
||||||
|
"defaultNote": "預設通道使用系統預設裝置",
|
||||||
|
"toggleHint": "點選裝置以將其加入或從所選通道中移除",
|
||||||
|
"selectHint": "選擇通道以指派裝置",
|
||||||
|
"empty": "找不到音訊裝置",
|
||||||
|
"requiresTauri": "音訊裝置選擇需要 Tauri"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"name": "通道名稱",
|
||||||
|
"namePlaceholder": "例如:虛擬纜線、廣播"
|
||||||
|
},
|
||||||
|
"createDialog": {
|
||||||
|
"title": "建立音訊通道",
|
||||||
|
"description": "建立新的音訊通道(匯流排),將聲音路由到特定的輸出裝置。",
|
||||||
|
"action": "建立"
|
||||||
|
},
|
||||||
|
"editDialog": {
|
||||||
|
"title": "編輯通道",
|
||||||
|
"description": "更新通道設定與聲音指派。"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profileForm": {
|
||||||
|
"createTitle": "建立聲音",
|
||||||
|
"editTitle": "編輯聲音",
|
||||||
|
"createDescription": "從音訊樣本或內建聲音建立新的聲音檔案。",
|
||||||
|
"editDescription": "更新您的聲音檔案細節並管理樣本。",
|
||||||
|
"draftRestored": "已還原草稿",
|
||||||
|
"discard": "捨棄",
|
||||||
|
"source": {
|
||||||
|
"clone": "從音訊複製",
|
||||||
|
"builtin": "內建聲音"
|
||||||
|
},
|
||||||
|
"builtin": {
|
||||||
|
"hint": "選擇預建的聲音。這些不需要音訊樣本。",
|
||||||
|
"badge": "內建聲音",
|
||||||
|
"note": "此檔案使用內建聲音。建立後聲音無法變更。"
|
||||||
|
},
|
||||||
|
"sampleTabs": {
|
||||||
|
"upload": "上傳",
|
||||||
|
"record": "錄製",
|
||||||
|
"system": "系統音訊"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"engine": "引擎",
|
||||||
|
"voice": "聲音",
|
||||||
|
"name": "名稱",
|
||||||
|
"namePlaceholder": "我的聲音",
|
||||||
|
"descriptionLabel": "描述(選填)",
|
||||||
|
"descriptionPlaceholder": "描述此聲音……",
|
||||||
|
"language": "語言",
|
||||||
|
"referenceText": "參考文字",
|
||||||
|
"referenceTextPlaceholder": "輸入音訊中所說的確切文字……",
|
||||||
|
"defaultEngine": "預設引擎",
|
||||||
|
"noPreference": "無偏好",
|
||||||
|
"defaultEngineHint": "選擇此檔案時自動使用此引擎。",
|
||||||
|
"defaultEffects": "預設效果",
|
||||||
|
"defaultEffectsHint": "自動套用於使用此聲音所有新生成的效果。"
|
||||||
|
},
|
||||||
|
"avatar": {
|
||||||
|
"alt": "頭像預覽"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"saving": "儲存中…",
|
||||||
|
"saveChanges": "儲存變更",
|
||||||
|
"createProfile": "建立檔案"
|
||||||
|
},
|
||||||
|
"validation": {
|
||||||
|
"nameRequired": "請輸入名稱",
|
||||||
|
"referenceRequired": "新增樣本時需要參考文字",
|
||||||
|
"sampleRequired": "需要音訊樣本",
|
||||||
|
"referenceTextRequired": "需要參考文字",
|
||||||
|
"audioTooLong": "音訊過長({{duration}})。最大時長為 {{max}}。",
|
||||||
|
"audioFailed": "音訊檔案驗證失敗。請嘗試其他檔案。"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"recordingComplete": "錄製完成",
|
||||||
|
"recordingCompleteDescription": "音訊已成功錄製。",
|
||||||
|
"recordingError": "錄製錯誤",
|
||||||
|
"systemAudioCaptured": "已擷取系統音訊",
|
||||||
|
"systemAudioCapturedDescription": "音訊已成功擷取。",
|
||||||
|
"systemAudioError": "系統音訊擷取錯誤",
|
||||||
|
"transcribeFailed": "轉錄失敗",
|
||||||
|
"transcribeFailedFallback": "無法轉錄音訊",
|
||||||
|
"noFile": "未選擇檔案",
|
||||||
|
"noFileDescription": "請先選擇音訊檔案。",
|
||||||
|
"invalidFile": "檔案類型無效",
|
||||||
|
"invalidImageFormat": "請選擇圖片檔案(PNG、JPG 或 WebP)",
|
||||||
|
"fileTooLarge": "檔案過大",
|
||||||
|
"imageTooLargeDescription": "圖片必須小於 5MB",
|
||||||
|
"avatarRemoved": "頭像已移除",
|
||||||
|
"avatarRemovedDescription": "頭像圖片已成功移除。",
|
||||||
|
"avatarRemoveFailed": "移除頭像失敗",
|
||||||
|
"avatarUploadFailed": "頭像上傳失敗",
|
||||||
|
"avatarUploadFailedFallback": "無法上傳頭像",
|
||||||
|
"effectsUpdateFailed": "效果更新失敗",
|
||||||
|
"effectsUpdateFailedFallback": "無法儲存效果鏈",
|
||||||
|
"voiceUpdated": "聲音已更新",
|
||||||
|
"voiceUpdatedDescription": "\"{{name}}\" 已成功更新。",
|
||||||
|
"noVoiceSelected": "未選擇聲音",
|
||||||
|
"noVoiceSelectedDescription": "請選擇內建聲音。",
|
||||||
|
"profileCreated": "已建立檔案",
|
||||||
|
"profileCreatedBuiltin": "\"{{name}}\" 已使用內建聲音建立。",
|
||||||
|
"profileCreatedSample": "\"{{name}}\" 已使用樣本建立。",
|
||||||
|
"sampleRequired": "需要音訊樣本",
|
||||||
|
"sampleRequiredDescription": "請提供音訊樣本以建立聲音檔案。",
|
||||||
|
"referenceTextRequired": "需要參考文字",
|
||||||
|
"referenceTextRequiredDescription": "請提供音訊樣本的參考文字。",
|
||||||
|
"invalidAudio": "音訊檔案無效",
|
||||||
|
"invalidAudioDescription": "音訊時長為 {{duration}},但最大為 {{max}}。",
|
||||||
|
"validationError": "驗證錯誤",
|
||||||
|
"rollbackFailed": "復原失敗",
|
||||||
|
"rollbackFailedDescription": "樣本上傳失敗後無法移除已建立的檔案。",
|
||||||
|
"profileRolledBack": "檔案已復原。",
|
||||||
|
"sampleFailed": "新增樣本失敗",
|
||||||
|
"sampleFailedDescription": "新增樣本失敗。",
|
||||||
|
"sampleFailedRolledBack": "新增樣本失敗。檔案已復原。",
|
||||||
|
"saveFailed": "儲存檔案失敗"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"audioSample": {
|
||||||
|
"chooseFile": "選擇檔案",
|
||||||
|
"uploadHint": "點選以選擇檔案或拖放。最大時長:30 秒。",
|
||||||
|
"fileUploaded": "檔案已上傳",
|
||||||
|
"fileLabel": "檔案:{{name}}",
|
||||||
|
"play": "播放",
|
||||||
|
"pause": "暫停",
|
||||||
|
"transcribe": "轉錄",
|
||||||
|
"transcribing": "轉錄中…",
|
||||||
|
"remove": "移除",
|
||||||
|
"startRecording": "開始錄製",
|
||||||
|
"recordHint": "點選以開始錄製。最大時長:30 秒。",
|
||||||
|
"stopRecording": "停止錄製",
|
||||||
|
"remaining": "剩餘 {{time}}",
|
||||||
|
"recordingComplete": "錄製完成",
|
||||||
|
"recordAgain": "重新錄製",
|
||||||
|
"startCapture": "開始擷取",
|
||||||
|
"systemHint": "從您的系統擷取音訊。最大時長:30 秒。",
|
||||||
|
"stopCapture": "停止擷取",
|
||||||
|
"captureComplete": "擷取完成",
|
||||||
|
"captureAgain": "重新擷取"
|
||||||
|
},
|
||||||
|
"sampleList": {
|
||||||
|
"loading": "載入樣本中…",
|
||||||
|
"empty": {
|
||||||
|
"title": "尚無樣本",
|
||||||
|
"hint": "新增第一個音訊樣本以開始"
|
||||||
|
},
|
||||||
|
"editing": "正在編輯轉錄",
|
||||||
|
"placeholder": "輸入參考文字……",
|
||||||
|
"saving": "儲存中…",
|
||||||
|
"editTranscription": "編輯轉錄",
|
||||||
|
"deleteSample": "刪除樣本",
|
||||||
|
"addSample": "新增樣本",
|
||||||
|
"note": "注意:單一 30 秒的樣本效果最佳。多個樣本可能會降低品質。未來版本中樣本可能可互換,並為同一聲音的不同風格加上標籤。",
|
||||||
|
"deleteDialog": {
|
||||||
|
"title": "刪除樣本",
|
||||||
|
"description": "確定要刪除此音訊樣本嗎?此操作無法復原。",
|
||||||
|
"deleting": "刪除中…"
|
||||||
|
},
|
||||||
|
"player": {
|
||||||
|
"play": "播放樣本",
|
||||||
|
"pause": "暫停樣本",
|
||||||
|
"stop": "停止",
|
||||||
|
"stopAria": "停止播放",
|
||||||
|
"position": "樣本播放位置",
|
||||||
|
"positionValue": "{{current}} / {{total}}"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"invalidText": "文字無效",
|
||||||
|
"invalidTextDescription": "參考文字不能為空。",
|
||||||
|
"updated": "樣本已更新",
|
||||||
|
"updatedDescription": "參考文字已成功更新。",
|
||||||
|
"updateFailed": "更新失敗",
|
||||||
|
"updateFailedFallback": "更新樣本失敗"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"card": {
|
||||||
|
"noDescription": "無描述",
|
||||||
|
"designed": "設計",
|
||||||
|
"export": "匯出聲音檔案",
|
||||||
|
"edit": "編輯聲音檔案",
|
||||||
|
"delete": "刪除聲音檔案",
|
||||||
|
"selectLabel": "{{name}},{{language}}。選擇用於生成的聲音。",
|
||||||
|
"selectLabelSelected": "{{name}},{{language}}。已選為用於生成的聲音。"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"errorLoading": "載入聲音檔案時出錯:{{message}}",
|
||||||
|
"empty": "尚無聲音檔案。建立您的第一個檔案以開始使用。",
|
||||||
|
"createVoice": "建立聲音",
|
||||||
|
"unsupportedNote": "目前模型僅可選擇支援的聲音檔案。"
|
||||||
|
},
|
||||||
|
"deleteDialog": {
|
||||||
|
"title": "刪除聲音檔案",
|
||||||
|
"body": "確定要刪除 \"{{name}}\" 嗎?此操作無法復原。",
|
||||||
|
"deleting": "刪除中…"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"effects": {
|
||||||
|
"title": "效果",
|
||||||
|
"newPreset": "新增預設集",
|
||||||
|
"noDescription": "無描述",
|
||||||
|
"placeholder": "選擇預設集或建立新的",
|
||||||
|
"effectCount_one": "{{count}} 個效果",
|
||||||
|
"effectCount_other": "{{count}} 個效果",
|
||||||
|
"sections": {
|
||||||
|
"builtin": "內建",
|
||||||
|
"custom": "自訂",
|
||||||
|
"new": "新增"
|
||||||
|
},
|
||||||
|
"badge": {
|
||||||
|
"builtin": "內建"
|
||||||
|
},
|
||||||
|
"unsaved": {
|
||||||
|
"title": "未儲存的預設集",
|
||||||
|
"hint": "在右側面板設定效果。"
|
||||||
|
},
|
||||||
|
"detail": {
|
||||||
|
"newTitle": "新增預設集",
|
||||||
|
"editTitle": "編輯預設集",
|
||||||
|
"savePreset": "儲存預設集",
|
||||||
|
"saveAsCustom": "另存為自訂",
|
||||||
|
"saving": "儲存中…",
|
||||||
|
"deleting": "刪除中…"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"name": "名稱",
|
||||||
|
"namePlaceholder": "我的預設集……",
|
||||||
|
"description": "描述",
|
||||||
|
"descriptionPlaceholder": "描述此預設集的作用……"
|
||||||
|
},
|
||||||
|
"preview": {
|
||||||
|
"label": "預覽",
|
||||||
|
"button": "預覽",
|
||||||
|
"processing": "處理中…",
|
||||||
|
"hint": "預覽僅將效果套用於乾淨版本,不會儲存。"
|
||||||
|
},
|
||||||
|
"saveAs": {
|
||||||
|
"title": "另存為自訂預設集",
|
||||||
|
"description": "基於目前的效果鏈建立新的自訂預設集。",
|
||||||
|
"suggestedName": "{{name}}(副本)"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"saved": "預設集已儲存",
|
||||||
|
"createdDescription": "\"{{name}}\" 已建立。",
|
||||||
|
"updated": "預設集已更新",
|
||||||
|
"deleted": "預設集已刪除",
|
||||||
|
"saveFailed": "儲存失敗",
|
||||||
|
"deleteFailed": "刪除失敗",
|
||||||
|
"previewFailed": "預覽失敗",
|
||||||
|
"nameRequired": "請輸入名稱"
|
||||||
|
},
|
||||||
|
"chain": {
|
||||||
|
"loadPreset": "載入預設集……",
|
||||||
|
"addEffect": "新增效果……",
|
||||||
|
"clear": "清除",
|
||||||
|
"enable": "啟用",
|
||||||
|
"disable": "停用",
|
||||||
|
"remove": "移除"
|
||||||
|
},
|
||||||
|
"types": {
|
||||||
|
"chorus": {
|
||||||
|
"label": "合聲 / 鑲邊",
|
||||||
|
"params": {
|
||||||
|
"rate_hz": "LFO 速度(Hz)",
|
||||||
|
"depth": "調變深度",
|
||||||
|
"feedback": "回饋量",
|
||||||
|
"centre_delay_ms": "中心延遲(毫秒)",
|
||||||
|
"mix": "乾溼混合"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"reverb": {
|
||||||
|
"label": "殘響",
|
||||||
|
"params": {
|
||||||
|
"room_size": "空間大小",
|
||||||
|
"damping": "高頻阻尼",
|
||||||
|
"wet_level": "溼聲電平",
|
||||||
|
"dry_level": "乾聲電平",
|
||||||
|
"width": "立體聲寬度"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"delay": {
|
||||||
|
"label": "延遲",
|
||||||
|
"params": {
|
||||||
|
"delay_seconds": "延遲時間(秒)",
|
||||||
|
"feedback": "回饋量",
|
||||||
|
"mix": "乾溼混合"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compressor": {
|
||||||
|
"label": "壓縮器",
|
||||||
|
"params": {
|
||||||
|
"threshold_db": "閾值(dB)",
|
||||||
|
"ratio": "壓縮比",
|
||||||
|
"attack_ms": "起音時間(毫秒)",
|
||||||
|
"release_ms": "釋放時間(毫秒)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gain": {
|
||||||
|
"label": "增益",
|
||||||
|
"params": {
|
||||||
|
"gain_db": "增益(dB)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"highpass": {
|
||||||
|
"label": "高通濾波器",
|
||||||
|
"params": {
|
||||||
|
"cutoff_frequency_hz": "截止頻率(Hz)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lowpass": {
|
||||||
|
"label": "低通濾波器",
|
||||||
|
"params": {
|
||||||
|
"cutoff_frequency_hz": "截止頻率(Hz)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pitch_shift": {
|
||||||
|
"label": "音高變換",
|
||||||
|
"params": {
|
||||||
|
"semitones": "半音移動"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"builtinPresets": {
|
||||||
|
"Robotic": {
|
||||||
|
"name": "機器人",
|
||||||
|
"description": "金屬機器人嗓音(慢速 LFO 加高回饋的鑲邊效果)"
|
||||||
|
},
|
||||||
|
"Radio": {
|
||||||
|
"name": "收音機",
|
||||||
|
"description": "帶通濾波加輕度壓縮的 AM 收音機薄嗓音"
|
||||||
|
},
|
||||||
|
"Echo Chamber": {
|
||||||
|
"name": "回音室",
|
||||||
|
"description": "寬廣的殘響加尾隨回音"
|
||||||
|
},
|
||||||
|
"Deep Voice": {
|
||||||
|
"name": "低沉嗓音",
|
||||||
|
"description": "降低音高並增添溫暖"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stories": {
|
||||||
|
"title": "故事",
|
||||||
|
"newStory": "新增故事",
|
||||||
|
"loading": "載入故事中…",
|
||||||
|
"empty": {
|
||||||
|
"title": "尚無故事",
|
||||||
|
"hint": "建立您的第一個故事以開始"
|
||||||
|
},
|
||||||
|
"row": {
|
||||||
|
"itemCount_one": "{{count}} 項",
|
||||||
|
"itemCount_other": "{{count}} 項",
|
||||||
|
"ariaLabel": "故事 {{name}},{{count}} 項,{{updated}}",
|
||||||
|
"actionsLabel": "{{name}} 的操作"
|
||||||
|
},
|
||||||
|
"createDialog": {
|
||||||
|
"title": "新增故事",
|
||||||
|
"description": "建立新故事以將您的語音生成整理成對話。",
|
||||||
|
"action": "建立",
|
||||||
|
"creating": "建立中…"
|
||||||
|
},
|
||||||
|
"editDialog": {
|
||||||
|
"title": "編輯故事",
|
||||||
|
"description": "更新故事名稱與描述。",
|
||||||
|
"saving": "儲存中…"
|
||||||
|
},
|
||||||
|
"deleteDialog": {
|
||||||
|
"title": "確定嗎?",
|
||||||
|
"description": "這將永久刪除該故事及其所有項目。此操作無法復原。",
|
||||||
|
"deleting": "刪除中…"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"name": "名稱",
|
||||||
|
"namePlaceholder": "我的故事",
|
||||||
|
"descriptionLabel": "描述(選填)",
|
||||||
|
"descriptionPlaceholder": "一段對話……"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"nameRequired": "請輸入名稱",
|
||||||
|
"nameRequiredDescription": "請輸入故事名稱",
|
||||||
|
"created": "已建立故事",
|
||||||
|
"createdDescription": "\"{{name}}\" 已建立",
|
||||||
|
"createFailed": "建立故事失敗",
|
||||||
|
"updateFailed": "更新故事失敗",
|
||||||
|
"deleteFailed": "刪除故事失敗"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"storyContent": {
|
||||||
|
"selectStory": {
|
||||||
|
"title": "選擇一個故事",
|
||||||
|
"hint": "從清單中選擇故事以檢視其內容"
|
||||||
|
},
|
||||||
|
"loading": "載入故事中…",
|
||||||
|
"notFound": {
|
||||||
|
"title": "找不到故事",
|
||||||
|
"hint": "無法載入所選故事"
|
||||||
|
},
|
||||||
|
"generatingCount_one": "生成 {{count}} 個音訊中",
|
||||||
|
"generatingCount_other": "生成 {{count}} 個音訊中",
|
||||||
|
"add": "新增",
|
||||||
|
"searchPlaceholder": "依名稱或文字內容搜尋……",
|
||||||
|
"searchNoMatches": "找不到相符的生成",
|
||||||
|
"searchNoAvailable": "尚無可用的生成",
|
||||||
|
"exportAudio": "匯出音訊",
|
||||||
|
"empty": {
|
||||||
|
"title": "此故事尚無項目",
|
||||||
|
"hint": "使用下方輸入框生成語音以新增項目"
|
||||||
|
},
|
||||||
|
"itemActions": {
|
||||||
|
"playFromHere": "從此處播放",
|
||||||
|
"removeFromStory": "從故事中移除"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"removeFailed": "移除項目失敗",
|
||||||
|
"reorderFailed": "重新排序項目失敗",
|
||||||
|
"exportFailed": "匯出音訊失敗",
|
||||||
|
"addFailed": "新增生成失敗"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"actions": {
|
||||||
|
"menu": "操作",
|
||||||
|
"play": "播放",
|
||||||
|
"exportAudio": "匯出音訊",
|
||||||
|
"exportPackage": "匯出套件",
|
||||||
|
"applyEffects": "套用效果",
|
||||||
|
"regenerate": "重新生成"
|
||||||
|
},
|
||||||
|
"deleteDialog": {
|
||||||
|
"title": "刪除生成",
|
||||||
|
"body": "確定要刪除來自 \"{{name}}\" 的這次生成嗎?此操作無法復原。",
|
||||||
|
"deleting": "刪除中…"
|
||||||
|
},
|
||||||
|
"clearFailedDialog": {
|
||||||
|
"title": "清除失敗的生成",
|
||||||
|
"body_one": "這將從歷史記錄中永久刪除 {{count}} 筆失敗的生成。此操作無法復原。",
|
||||||
|
"body_other": "這將從歷史記錄中永久刪除 {{count}} 筆失敗的生成。此操作無法復原。",
|
||||||
|
"clearing": "清除中…",
|
||||||
|
"clearAll": "全部清除"
|
||||||
|
},
|
||||||
|
"importDialog": {
|
||||||
|
"title": "匯入生成",
|
||||||
|
"body": "從 \"{{name}}\" 匯入生成。這會將其加入您的歷史記錄。",
|
||||||
|
"importing": "匯入中…",
|
||||||
|
"action": "匯入"
|
||||||
|
},
|
||||||
|
"effectsDialog": {
|
||||||
|
"title": "套用效果",
|
||||||
|
"body": "設定要套用於此生成的後製效果。將會建立一個新版本。"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"generation": {
|
||||||
|
"placeholder": {
|
||||||
|
"storyWithEffects": "為 \"{{name}}\" 生成語音… (輸入 / 使用效果)",
|
||||||
|
"story": "為 \"{{name}}\" 生成語音…",
|
||||||
|
"profile": "使用 {{name}} 生成語音…",
|
||||||
|
"effectsHint": "輸入 / 使用效果,如 [笑聲]、[嘆息]…",
|
||||||
|
"selectVoice": "請在上方選擇一個聲音檔案…"
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"generate": "生成語音",
|
||||||
|
"generating": "生成中…",
|
||||||
|
"selectFirst": "請先選擇聲音檔案"
|
||||||
|
},
|
||||||
|
"instruct": {
|
||||||
|
"show": "顯示傳達指示",
|
||||||
|
"hide": "隱藏傳達指示",
|
||||||
|
"tooltip": "傳達指示 (語氣、情感、節奏)",
|
||||||
|
"placeholder": "傳達指示——例如:溫柔緩慢地說、威嚴清晰…"
|
||||||
|
},
|
||||||
|
"voiceSelector": {
|
||||||
|
"placeholder": "選擇聲音…"
|
||||||
|
},
|
||||||
|
"effects": {
|
||||||
|
"none": "無效果",
|
||||||
|
"profileDefault": "檔案預設"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main": {
|
||||||
|
"importVoice": "匯入聲音",
|
||||||
|
"createVoice": "建立聲音",
|
||||||
|
"import": {
|
||||||
|
"invalidTitle": "檔案類型無效",
|
||||||
|
"invalidDescription": "請選擇有效的 .voicebox.zip 檔案",
|
||||||
|
"successTitle": "聲音已匯入",
|
||||||
|
"successDescription": "成功匯入聲音檔案",
|
||||||
|
"failedTitle": "匯入聲音檔案失敗",
|
||||||
|
"dialogTitle": "匯入聲音檔案",
|
||||||
|
"dialogDescription": "從 \"{{name}}\" 匯入聲音檔案。這將建立包含所有樣本的新聲音檔案。",
|
||||||
|
"importing": "匯入中…",
|
||||||
|
"action": "匯入"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"tabs": {
|
||||||
|
"general": "一般",
|
||||||
|
"generation": "生成",
|
||||||
|
"gpu": "GPU",
|
||||||
|
"logs": "日誌",
|
||||||
|
"changelog": "更新日誌",
|
||||||
|
"about": "關於"
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"label": "語言",
|
||||||
|
"description": "選擇 Voicebox 的顯示語言。"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"docs": { "title": "閱讀文件" },
|
||||||
|
"discord": { "title": "加入 Discord", "subtitle": "取得協助與分享聲音" },
|
||||||
|
"serverUrl": {
|
||||||
|
"title": "伺服器 URL",
|
||||||
|
"description": "Voicebox 後端伺服器的位址。",
|
||||||
|
"invalidUrl": "請輸入有效的 URL",
|
||||||
|
"updatedTitle": "伺服器 URL 已更新",
|
||||||
|
"updatedDescription": "已連線至 {{url}}"
|
||||||
|
},
|
||||||
|
"keepServerRunning": {
|
||||||
|
"title": "關閉應用程式時保持伺服器執行",
|
||||||
|
"description": "關閉應用程式後,伺服器將繼續在背景執行。",
|
||||||
|
"failedTitle": "更新設定失敗",
|
||||||
|
"failedDescription": "無法將設定同步到後端。",
|
||||||
|
"updatedTitle": "設定已更新",
|
||||||
|
"runningDescription": "關閉應用程式時伺服器將繼續執行",
|
||||||
|
"stoppedDescription": "關閉應用程式時伺服器將停止"
|
||||||
|
},
|
||||||
|
"networkAccess": {
|
||||||
|
"title": "允許網路存取",
|
||||||
|
"description": "讓網路上的其他裝置可存取伺服器。變更後請重新啟動應用程式。",
|
||||||
|
"enabled": "已啟用網路存取。重新啟動應用程式以套用。",
|
||||||
|
"disabled": "已停用網路存取。重新啟動應用程式以套用。"
|
||||||
|
},
|
||||||
|
"connection": {
|
||||||
|
"connecting": "連線中",
|
||||||
|
"offline": "離線",
|
||||||
|
"online": "線上"
|
||||||
|
},
|
||||||
|
"updates": {
|
||||||
|
"title": "應用程式更新",
|
||||||
|
"devSuffix": "(開發版)",
|
||||||
|
"devMode": {
|
||||||
|
"title": "開發模式",
|
||||||
|
"description": "開發模式下已停用自動更新。"
|
||||||
|
},
|
||||||
|
"check": {
|
||||||
|
"title": "檢查更新",
|
||||||
|
"available": "版本 {{version}} 可用",
|
||||||
|
"checking": "檢查中…",
|
||||||
|
"upToDate": "已是最新版本",
|
||||||
|
"button": "檢查"
|
||||||
|
},
|
||||||
|
"error": "更新錯誤",
|
||||||
|
"download": {
|
||||||
|
"title": "更新到 {{version}}",
|
||||||
|
"description": "下載並安裝最新版本。",
|
||||||
|
"button": "下載"
|
||||||
|
},
|
||||||
|
"downloading": "下載更新中…",
|
||||||
|
"ready": {
|
||||||
|
"title": "更新已準備就緒",
|
||||||
|
"description": "版本 {{version}} 已下載。重新啟動以完成。",
|
||||||
|
"button": "立即重新啟動"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"api": {
|
||||||
|
"title": "API 存取",
|
||||||
|
"description": "透過 <code>{{url}}</code> 的 REST API 將 Voicebox 整合到您的工作流程中",
|
||||||
|
"viewReference": "檢視完整的 API 參考",
|
||||||
|
"endpoints": {
|
||||||
|
"generate": "生成語音",
|
||||||
|
"health": "伺服器狀態",
|
||||||
|
"profiles": "聲音清單",
|
||||||
|
"history": "歷史生成"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"generation": {
|
||||||
|
"title": "生成",
|
||||||
|
"description": "長文字生成的控制項。這些設定適用於所有引擎。",
|
||||||
|
"chunkLimit": {
|
||||||
|
"title": "自動分塊上限",
|
||||||
|
"description": "長文字會在句子邊界處分塊。較低的值可以提升長輸出的品質。",
|
||||||
|
"value": "{{count}} 字元"
|
||||||
|
},
|
||||||
|
"crossfade": {
|
||||||
|
"title": "區塊間淡入淡出",
|
||||||
|
"description": "在區塊之間混合音訊以平滑過渡。設為 0 表示硬切換。",
|
||||||
|
"cut": "切換",
|
||||||
|
"ms": "{{ms}} 毫秒"
|
||||||
|
},
|
||||||
|
"normalize": {
|
||||||
|
"title": "音訊標準化",
|
||||||
|
"description": "將輸出音量調整到所有生成結果一致的水準。"
|
||||||
|
},
|
||||||
|
"autoplay": {
|
||||||
|
"title": "生成後自動播放",
|
||||||
|
"description": "生成完成後自動播放音訊。"
|
||||||
|
},
|
||||||
|
"folder": {
|
||||||
|
"title": "生成資料夾",
|
||||||
|
"description": "生成的音訊檔案在磁碟上的儲存位置。",
|
||||||
|
"open": "開啟"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gpu": {
|
||||||
|
"cpuOnly": "僅 CPU",
|
||||||
|
"vramUsed": "{{mb}} MB 顯示記憶體",
|
||||||
|
"noAcceleration": "未偵測到 GPU 加速",
|
||||||
|
"active": "啟用中",
|
||||||
|
"cuda": {
|
||||||
|
"title": "CUDA 後端",
|
||||||
|
"description": "透過可下載的 CUDA 後端實現 NVIDIA GPU 加速。",
|
||||||
|
"downloading": "下載 CUDA 後端中…",
|
||||||
|
"downloadingShort": "下載中…",
|
||||||
|
"updating": "更新中…"
|
||||||
|
},
|
||||||
|
"restart": {
|
||||||
|
"ready": "伺服器重新啟動成功",
|
||||||
|
"waiting": "重新啟動伺服器中…",
|
||||||
|
"stopping": "停止伺服器中…"
|
||||||
|
},
|
||||||
|
"download": {
|
||||||
|
"title": "下載 CUDA 後端",
|
||||||
|
"description": "約 2.4 GB 下載。需要支援 CUDA 的 NVIDIA GPU。",
|
||||||
|
"button": "下載"
|
||||||
|
},
|
||||||
|
"switchToCuda": {
|
||||||
|
"title": "切換到 CUDA 後端",
|
||||||
|
"description": "CUDA 後端已下載完成。重新啟動以啟用。",
|
||||||
|
"button": "重新啟動"
|
||||||
|
},
|
||||||
|
"switchToCpu": {
|
||||||
|
"title": "切換到 CPU 後端",
|
||||||
|
"description": "停用 GPU 加速。稍後可以重新下載 CUDA。",
|
||||||
|
"button": "切換"
|
||||||
|
},
|
||||||
|
"remove": {
|
||||||
|
"title": "移除 CUDA 後端",
|
||||||
|
"description": "刪除已下載的 CUDA 二進位檔以釋放磁碟空間。",
|
||||||
|
"button": "移除"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"downloadFailed": "下載失敗",
|
||||||
|
"downloadStart": "啟動下載失敗",
|
||||||
|
"restartFailed": "重新啟動失敗",
|
||||||
|
"switchCpu": "切換到 CPU 失敗",
|
||||||
|
"deleteCuda": "刪除 CUDA 後端失敗"
|
||||||
|
},
|
||||||
|
"footer": "Voicebox 會自動偵測並使用系統上可用的最佳 GPU。在 Apple Silicon Mac 上,MLX 後端透過 Metal Performance Shaders (MPS) 在神經引擎與 GPU 上原生執行,無需額外設定。在配備 NVIDIA GPU 的 Windows 與 Linux 上,可以下載選用的 CUDA 後端以取得硬體加速推論。AMD ROCm、Intel XPU 與 DirectML 也透過 PyTorch 獲得支援。未偵測到 GPU 時,Voicebox 會退回到 CPU——所有引擎仍可運作,只是速度較慢。"
|
||||||
|
},
|
||||||
|
"logs": {
|
||||||
|
"title": "伺服器日誌",
|
||||||
|
"lineCount_one": "{{count}} 行",
|
||||||
|
"lineCount_other": "{{count}} 行",
|
||||||
|
"scrollToBottom": "捲動到底部",
|
||||||
|
"clear": "清除",
|
||||||
|
"empty": "尚無日誌輸出。",
|
||||||
|
"devHint": "僅當應用程式管理伺服器程序(正式版建置)時才會擷取伺服器日誌。"
|
||||||
|
},
|
||||||
|
"changelog": {
|
||||||
|
"devBadge": "開發版",
|
||||||
|
"showLess": "收合",
|
||||||
|
"showMore": "展開"
|
||||||
|
},
|
||||||
|
"about": {
|
||||||
|
"tagline": "開源語音合成工作室。複製聲音、生成語音、套用效果、打造語音驅動的應用程式——全部在您的本機執行。",
|
||||||
|
"createdBy": "作者",
|
||||||
|
"buyCoffee": "請我喝杯咖啡",
|
||||||
|
"license": "採用 <link>MIT</link> 授權"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"models": {
|
||||||
|
"title": "模型",
|
||||||
|
"subtitle": "下載與管理用於語音生成和轉錄的 AI 模型",
|
||||||
|
"defaultName": "模型",
|
||||||
|
"unknownSize": "未知大小",
|
||||||
|
"sections": {
|
||||||
|
"voiceGeneration": "語音生成",
|
||||||
|
"transcription": "語音轉錄"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"loaded": "已載入"
|
||||||
|
},
|
||||||
|
"storage": {
|
||||||
|
"location": "儲存位置",
|
||||||
|
"open": "開啟",
|
||||||
|
"change": "變更",
|
||||||
|
"migrating": "遷移中…",
|
||||||
|
"reset": "重設",
|
||||||
|
"pickerTitle": "選擇模型儲存資料夾"
|
||||||
|
},
|
||||||
|
"progress": {
|
||||||
|
"connecting": "連線中…",
|
||||||
|
"connectingHf": "連線至 HuggingFace 中…"
|
||||||
|
},
|
||||||
|
"problems": {
|
||||||
|
"title": "問題",
|
||||||
|
"clearAll": "全部清除",
|
||||||
|
"noDetails": "沒有可用的錯誤詳細資訊。請重試下載。",
|
||||||
|
"startedAt": "開始於 {{time}}"
|
||||||
|
},
|
||||||
|
"detail": {
|
||||||
|
"loadingInfo": "載入模型資訊中…",
|
||||||
|
"byAuthor": "作者 {{author}}",
|
||||||
|
"downloads": "下載次數",
|
||||||
|
"likes": "喜愛數",
|
||||||
|
"license": "授權",
|
||||||
|
"languagesCount": "支援 {{count}} 種語言",
|
||||||
|
"languagesList": "語言:{{list}}",
|
||||||
|
"onDisk": "磁碟佔用 {{size}}"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"download": "下載",
|
||||||
|
"retry": "重試下載",
|
||||||
|
"unload": "卸載",
|
||||||
|
"unloading": "卸載中…",
|
||||||
|
"unloadFirst": "刪除前請先卸載模型",
|
||||||
|
"deleteModel": "刪除模型"
|
||||||
|
},
|
||||||
|
"deleteDialog": {
|
||||||
|
"title": "刪除模型",
|
||||||
|
"body": "確定要刪除 <strong>{{name}}</strong> 嗎?",
|
||||||
|
"sizeNote": "這將釋放 {{size}} 磁碟空間。若要再次使用該模型,必須重新下載。",
|
||||||
|
"deleting": "刪除中…"
|
||||||
|
},
|
||||||
|
"migrateDialog": {
|
||||||
|
"title": "將模型移動到新位置?",
|
||||||
|
"description": "在模型遷移到新資料夾期間,伺服器將會關閉。遷移完成後會自動重新啟動。",
|
||||||
|
"action": "移動模型",
|
||||||
|
"preparing": "準備中…",
|
||||||
|
"restartingServer": "重新啟動伺服器中…"
|
||||||
|
},
|
||||||
|
"migrate": {
|
||||||
|
"title": "移動模型中",
|
||||||
|
"offline": "模型遷移期間伺服器處於離線狀態。"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"downloadFailed": "下載失敗",
|
||||||
|
"cancelFailed": "取消失敗",
|
||||||
|
"cancelFailedDescription": "無法取消下載任務。",
|
||||||
|
"deleted": "模型已刪除",
|
||||||
|
"deletedDescription": "{{name}} 已成功刪除。",
|
||||||
|
"deleteFailed": "刪除失敗",
|
||||||
|
"unloaded": "模型已卸載",
|
||||||
|
"unloadedDescription": "{{name}} 已從記憶體中卸載。",
|
||||||
|
"unloadFailed": "卸載失敗",
|
||||||
|
"openFolderFailed": "開啟模型資料夾失敗",
|
||||||
|
"pickerFailed": "開啟資料夾選擇器失敗",
|
||||||
|
"resetToDefault": "已重設至預設位置。重新啟動伺服器中…",
|
||||||
|
"noModelsToMigrate": "沒有可遷移的模型",
|
||||||
|
"noModelsToMigrateDescription": "變更儲存位置前請先下載至少一個模型。",
|
||||||
|
"migrated": "模型已成功移動",
|
||||||
|
"migrationFailed": "遷移失敗",
|
||||||
|
"migrationFailedGeneric": "遷移模型失敗",
|
||||||
|
"migrationConnectionLost": "遷移期間連線中斷"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user