Ariver
2026-07-03 5fbe9789faf05ce99bbff6ec4cd0b905519acbd0
C1.source/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
@@ -1,4 +1,5 @@
<script lang="ts">
  import { onDestroy } from 'svelte'
  import { Call, Events } from '@wailsio/runtime'
  import { t, setLocale } from '../../lib/i18n'
  import { languageMode, languageID, effectiveLanguageID, uiLocale } from '../../lib/stores/config'
@@ -42,7 +43,7 @@
  const unsub2 = languageID.subscribe(v => { languageIDVal = v })
  const unsub3 = effectiveLanguageID.subscribe(v => { effectiveLanguageIDVal = v })
  Events.On('model:download-progress', (ev: any) => {
  const offDownloadProgress = Events.On('model:download-progress', (ev: any) => {
    const data = ev?.data
    if (data?.modelID && typeof data.percent === 'number') {
      modelBusyID = data.modelID
@@ -54,7 +55,7 @@
    }
  })
  Events.On('model:download-cancelled', (ev: any) => {
  const offDownloadCancelled = Events.On('model:download-cancelled', (ev: any) => {
    const data = ev?.data
    if (data?.modelID) {
      modelBusyID = data.modelID
@@ -63,7 +64,7 @@
    }
  })
  Events.On('model:download-finished', (ev: any) => {
  const offDownloadFinished = Events.On('model:download-finished', (ev: any) => {
    const data = ev?.data
    if (!data?.modelID || data.modelID === modelBusyID) {
      clearModelBusy()
@@ -71,6 +72,15 @@
    }
  })
  onDestroy(() => {
    unsub1()
    unsub2()
    unsub3()
    offDownloadProgress()
    offDownloadCancelled()
    offDownloadFinished()
  })
  async function loadSettings() {
    try {
      const lang: any = await Call.ByName('voicesnap/services.ConfigService.GetLanguageSettings')