Skip to content

Commit 50bebd1

Browse files
committed
Read Aloud: Support (ignore) wildcard lang
1 parent 5cce64c commit 50bebd1

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

src/common/read-aloud/lang.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ export function normalizeLanguage(lang: string): string {
3838
}
3939

4040
export function isLanguageSupported(voiceLang: string, lang: string): boolean {
41+
// Wildcard for non-Zotero TTS APIs that are language-agnostic,
42+
// e.g. OpenAI
43+
if (voiceLang === '*' || lang === '*') {
44+
return true;
45+
}
46+
4147
let normalizedLang = normalizeLanguage(lang);
4248
let baseLang = getBaseLanguage(normalizedLang);
4349
let hasRegion = normalizedLang.includes('-');

src/common/read-aloud/voice.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ export function resolveEnabledVoiceIDs(
7070
export function getSupportedLanguages(voices: ReadAloudVoice[]): string[] {
7171
let langs = new Set<string>();
7272
for (let voice of voices) {
73+
// Wildcard voices match any language and shouldn't appear as
74+
// a selectable language option
75+
if (voice.language === '*') {
76+
continue;
77+
}
7378
let normalized = normalizeLanguage(voice.language);
7479
langs.add(normalized);
7580
}
@@ -81,6 +86,9 @@ export function getVoicesForLanguage<T extends ReadAloudVoice>(voices: T[], lang
8186
}
8287

8388
export function getVoiceRegion(voice: ReadAloudVoice): string | null {
89+
if (voice.language === '*') {
90+
return null;
91+
}
8492
let normalized = normalizeLanguage(voice.language);
8593
let base = getBaseLanguage(normalized);
8694
return normalized.includes('-') ? normalized.substring(base.length + 1) : null;

0 commit comments

Comments
 (0)