diff --git a/apps/web/src/pages/voices/components/tts-modal/LanguageControl.tsx b/apps/web/src/pages/voices/components/tts-modal/LanguageControl.tsx index a84668b83..72539762f 100644 --- a/apps/web/src/pages/voices/components/tts-modal/LanguageControl.tsx +++ b/apps/web/src/pages/voices/components/tts-modal/LanguageControl.tsx @@ -1,13 +1,28 @@ import React from "react" -import { TTS_LANGUAGE_OPTIONS, type TtsLanguage } from "./constants" +import type { TtsLanguage } from "./constants" +import { TTS_LANGUAGE_OPTIONS } from "./constants" + +interface LanguageOption { + value: string + label: string +} interface LanguageControlProps { language: TtsLanguage onChange: (language: TtsLanguage) => void + /** 根据音色来源传入可选语言列表;不传则使用完整列表 */ + options?: readonly LanguageOption[] } /** 语言选择下拉 */ -const LanguageControl: React.FC = ({ language, onChange }) => { +const LanguageControl: React.FC = ({ + language, + onChange, + options = TTS_LANGUAGE_OPTIONS, +}) => { + // 若当前语言不在可选列表(如从克隆切到预置时 ja/ko 失效),自动回退到中文 + const effectiveValue = options.some((o) => o.value === language) ? language : "zh-CN" + return (
= ({ language, onChange }) 语言