From 4a9a4cec1739007936d434a6a51180158e25078b Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 24 Jun 2026 02:17:08 +0800
Subject: [PATCH] Fix missing model language switch flow

---
 privatevoice.src/frontend/src/components/settings/LanguagePage.svelte |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte b/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
index 3ff0db7..2bb1b72 100644
--- a/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
+++ b/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
@@ -78,7 +78,6 @@
         engineStatus.set('loading')
       } else {
         engineHardwareInfo.set('')
-        engineStatus.set('need_model')
       }
       await Call.ByName('voicesnap/services.EngineService.ReloadCurrentModel')
     } catch {}
@@ -125,13 +124,13 @@
       }
       return t('settings.modelWorking')
     }
-    if (option.isCurrent) return t('settings.modelCurrent')
+    if (option.isCurrent && option.installed) return t('settings.modelCurrent')
     if (option.installed) return t('settings.modelUse')
     return t('settings.modelDownload')
   }
 
   async function onModelAction(option: ModelOption) {
-    if (option.isCurrent || modelBusyID) return
+    if ((option.isCurrent && option.installed) || modelBusyID) return
     modelBusyID = option.modelID
     modelProgress = 0
     modelError = ''
@@ -232,8 +231,8 @@
           <div class="model-main">
             <div class="model-title-row">
               <span class="model-title">{option.displayName}</span>
-              <span class="model-pill" class:current={option.isCurrent}>
-                {option.isCurrent ? t('settings.modelCurrent') : modelTierLabel(option)}
+              <span class="model-pill" class:current={option.isCurrent && option.installed}>
+                {option.isCurrent && option.installed ? t('settings.modelCurrent') : modelTierLabel(option)}
               </span>
             </div>
             <span class="model-desc">{modelDescription(option)}</span>
@@ -244,7 +243,7 @@
               {/if}
             </span>
           </div>
-          {#if option.isCurrent}
+          {#if option.isCurrent && option.installed}
             <span class="model-current-status">{t('settings.modelCurrent')}</span>
           {:else}
             <button

--
Gitblit v1.9.3