From 2ba1056c56435f8d98110eca18dba90dc344de66 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 01 Jul 2026 23:57:44 +0800
Subject: [PATCH] Polish Windows overlay preview

---
 privatevoice.src/frontend/src/components/settings/GeneralPage.svelte |  115 +--------------------------------------------------------
 1 files changed, 2 insertions(+), 113 deletions(-)

diff --git a/privatevoice.src/frontend/src/components/settings/GeneralPage.svelte b/privatevoice.src/frontend/src/components/settings/GeneralPage.svelte
index 50d099b..d54ca49 100755
--- a/privatevoice.src/frontend/src/components/settings/GeneralPage.svelte
+++ b/privatevoice.src/frontend/src/components/settings/GeneralPage.svelte
@@ -1,8 +1,8 @@
 <script lang="ts">
   import { Call } from '@wailsio/runtime'
   import ToggleSwitch from '../shared/ToggleSwitch.svelte'
-  import { t, setLocale } from '../../lib/i18n'
-  import { autoHide, soundFeedback, copyToClipboard, startAtLogin, hotkeyVK, hotkeyMode, languageMode, languageID, effectiveLanguageID, uiLocale } from '../../lib/stores/config'
+  import { t } from '../../lib/i18n'
+  import { autoHide, soundFeedback, copyToClipboard, startAtLogin, hotkeyVK, hotkeyMode } from '../../lib/stores/config'
   import { deviceName, engineStatus, engineHardwareInfo } from '../../lib/stores/app'
   import { hotkeyName } from '../../lib/stores/indicator'
 
@@ -22,9 +22,6 @@
   let hwInfo = $state('')
   let currentKeyName = $state('Ctrl')
   let hotkeyModeVal: 'tap' | 'hold' = $state('hold')
-  let languageModeVal: 'auto' | 'manual' = $state('auto')
-  let languageIDVal: 'zh-CN' | 'en' = $state('zh-CN')
-  let effectiveLanguageIDVal: 'zh-CN' | 'en' = $state('zh-CN')
   let isRecording = $state(false)
   let hintText = $state('')
   let devices = $state<InputDevice[]>([])
@@ -39,9 +36,6 @@
   const unsub7 = soundFeedback.subscribe(v => { soundFeedbackVal = v })
   const unsub8 = copyToClipboard.subscribe(v => { copyToClipboardVal = v })
   const unsub9 = hotkeyMode.subscribe(v => { hotkeyModeVal = v })
-  const unsub10 = languageMode.subscribe(v => { languageModeVal = v })
-  const unsub11 = languageID.subscribe(v => { languageIDVal = v })
-  const unsub12 = effectiveLanguageID.subscribe(v => { effectiveLanguageIDVal = v })
 
   // Load actual device name from backend on mount
   async function loadDeviceName() {
@@ -86,41 +80,9 @@
       const hideDock: any = await Call.ByName('voicesnap/services.ConfigService.GetHideDockIcon')
       hideDockIconVal = !!hideDock
     } catch {}
-    try {
-      const lang: any = await Call.ByName('voicesnap/services.ConfigService.GetLanguageSettings')
-      applyLanguageSettings(lang)
-    } catch {}
     settingsLoaded = true
   }
   loadSettings()
-
-  function applyLanguageSettings(settings: any) {
-    const mode = settings?.languageMode === 'manual' ? 'manual' : 'auto'
-    const configured = settings?.languageID === 'en' ? 'en' : 'zh-CN'
-    const effective = settings?.effectiveLanguageID === 'en' ? 'en' : 'zh-CN'
-    const locale = settings?.uiLocale === 'en' ? 'en' : 'zh'
-    languageMode.set(mode)
-    languageID.set(configured)
-    effectiveLanguageID.set(effective)
-    uiLocale.set(locale)
-    languageModeVal = mode
-    languageIDVal = configured
-    effectiveLanguageIDVal = effective
-    setLocale(locale)
-  }
-
-  async function syncEngineForCurrentModel() {
-    try {
-      const current: any = await Call.ByName('voicesnap/services.EngineService.GetCurrentModelStatus')
-      if (current?.installed) {
-        engineStatus.set('loading')
-      } else {
-        engineHardwareInfo.set('')
-        engineStatus.set('need_model')
-      }
-      await Call.ByName('voicesnap/services.EngineService.ReloadCurrentModel')
-    } catch {}
-  }
 
   async function onAutoHideChange(checked: boolean) {
     autoHide.set(checked)
@@ -149,32 +111,6 @@
     try {
       await Call.ByName('voicesnap/services.ConfigService.SetHotkeyMode', mode)
     } catch {}
-  }
-
-  async function onLanguageChange(selection: 'auto' | 'zh-CN' | 'en') {
-    const prevMode = languageModeVal
-    const prevID = languageIDVal
-    if (selection === 'auto') {
-      languageModeVal = 'auto'
-      languageMode.set('auto')
-    } else {
-      languageModeVal = 'manual'
-      languageIDVal = selection
-      languageMode.set('manual')
-      languageID.set(selection)
-    }
-    try {
-      const settings: any = selection === 'auto'
-        ? await Call.ByName('voicesnap/services.ConfigService.SetLanguageAuto')
-        : await Call.ByName('voicesnap/services.ConfigService.SetLanguageManual', selection)
-      applyLanguageSettings(settings)
-      await syncEngineForCurrentModel()
-    } catch {
-      languageModeVal = prevMode
-      languageIDVal = prevID
-      languageMode.set(prevMode)
-      languageID.set(prevID)
-    }
   }
 
   async function onStartAtLoginChange(checked: boolean) {
@@ -339,43 +275,6 @@
     </div>
 
   </div>
-
-  {#if settingsLoaded}
-  <div class="section">
-    <div class="setting-row">
-      <div class="setting-info">
-        <span class="setting-label">{t('settings.language')}</span>
-        <span class="setting-desc">
-          {languageModeVal === 'auto'
-            ? t('settings.languageAutoDesc')
-            : effectiveLanguageIDVal === 'en'
-              ? t('settings.languageEnglishDesc')
-              : t('settings.languageChineseDesc')}
-        </span>
-      </div>
-      <div class="segmented language" role="group" aria-label={t('settings.language')}>
-        <button
-          class:active={languageModeVal === 'auto'}
-          onclick={() => onLanguageChange('auto')}
-        >
-          {t('settings.languageAuto')}
-        </button>
-        <button
-          class:active={languageModeVal === 'manual' && languageIDVal === 'zh-CN'}
-          onclick={() => onLanguageChange('zh-CN')}
-        >
-          {t('settings.languageChinese')}
-        </button>
-        <button
-          class:active={languageModeVal === 'manual' && languageIDVal === 'en'}
-          onclick={() => onLanguageChange('en')}
-        >
-          {t('settings.languageEnglish')}
-        </button>
-      </div>
-    </div>
-  </div>
-  {/if}
 
   <!-- Engine + Device -->
   <!-- svelte-ignore a11y_click_events_have_key_events -->
@@ -626,16 +525,6 @@
     border-radius: var(--radius-sm);
     background: var(--color-bg-secondary);
     flex-shrink: 0;
-  }
-
-  .segmented.language {
-    grid-template-columns: repeat(3, 1fr);
-    min-width: 246px;
-  }
-
-  .segmented.language button {
-    min-width: 76px;
-    padding: 0 10px;
   }
 
   .segmented button {

--
Gitblit v1.9.3