diff --git a/qwen3-tts-frontend/src/contexts/UserPreferencesContext.tsx b/qwen3-tts-frontend/src/contexts/UserPreferencesContext.tsx index b9ffbf2..57ca8e3 100644 --- a/qwen3-tts-frontend/src/contexts/UserPreferencesContext.tsx +++ b/qwen3-tts-frontend/src/contexts/UserPreferencesContext.tsx @@ -26,7 +26,7 @@ export function UserPreferencesProvider({ children }: { children: ReactNode }) { const fetchPreferences = async () => { if (!isAuthenticated || !user) { const browserLang = detectBrowserLanguage() - await loadFontsForLanguage(browserLang) + loadFontsForLanguage(browserLang) setIsLoading(false) return } @@ -42,10 +42,8 @@ export function UserPreferencesProvider({ children }: { children: ReactNode }) { setHasAliyunKey(keyVerification.valid) const lang = prefs.language || detectBrowserLanguage() - await Promise.all([ - i18n.changeLanguage(lang), - loadFontsForLanguage(lang), - ]) + loadFontsForLanguage(lang) + await i18n.changeLanguage(lang) const cacheKey = `user_preferences_${user.id}` localStorage.setItem(cacheKey, JSON.stringify(prefs)) @@ -56,11 +54,11 @@ export function UserPreferencesProvider({ children }: { children: ReactNode }) { const cachedPrefs = JSON.parse(cached) setPreferences(cachedPrefs) if (cachedPrefs.language) { - await loadFontsForLanguage(cachedPrefs.language) + loadFontsForLanguage(cachedPrefs.language) } } else { const browserLang = detectBrowserLanguage() - await loadFontsForLanguage(browserLang) + loadFontsForLanguage(browserLang) setPreferences({ default_backend: 'aliyun', onboarding_completed: false }) } } finally { @@ -98,10 +96,8 @@ export function UserPreferencesProvider({ children }: { children: ReactNode }) { } const changeLanguage = async (lang: 'zh-CN' | 'zh-TW' | 'en-US' | 'ja-JP' | 'ko-KR') => { - await Promise.all([ - i18n.changeLanguage(lang), - loadFontsForLanguage(lang), - ]) + loadFontsForLanguage(lang) + await i18n.changeLanguage(lang) await updatePreferences({ language: lang }) } diff --git a/qwen3-tts-frontend/src/lib/fontManager.ts b/qwen3-tts-frontend/src/lib/fontManager.ts index 91eb11b..073acde 100644 --- a/qwen3-tts-frontend/src/lib/fontManager.ts +++ b/qwen3-tts-frontend/src/lib/fontManager.ts @@ -85,11 +85,11 @@ function createFontFace(config: FontConfig): FontFace { return new FontFace(config.name, `url(${config.file}) format('woff2')`, descriptors) } -export async function loadFontsForLanguage(language: Language): Promise { +export function loadFontsForLanguage(language: Language): void { const configs = fontConfigs[language] if (!configs) return - const loadPromises = configs.map(async (config) => { + configs.forEach((config) => { const fontKey = `${config.name}-${config.file}` if (loadedFonts.has(fontKey)) { @@ -98,15 +98,12 @@ export async function loadFontsForLanguage(language: Language): Promise { try { const fontFace = createFontFace(config) - await fontFace.load() document.fonts.add(fontFace) loadedFonts.add(fontKey) } catch (error) { - console.warn(`Failed to load font ${config.file}:`, error) + console.warn(`Failed to register font ${config.file}:`, error) } }) - - await Promise.all(loadPromises) } export function detectBrowserLanguage(): Language { @@ -141,13 +138,11 @@ export function preloadBaseFont(): void { return } - const fontFace = createFontFace(baseConfig) - fontFace.load() - .then(() => { - document.fonts.add(fontFace) - loadedFonts.add(fontKey) - }) - .catch((error) => { - console.warn('Failed to preload base font:', error) - }) + try { + const fontFace = createFontFace(baseConfig) + document.fonts.add(fontFace) + loadedFonts.add(fontKey) + } catch (error) { + console.warn('Failed to register base font:', error) + } }