From 9a85354d8b41e05ba8729cd8f44592291de9117a Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 03 Jun 2026 01:40:19 +0800
Subject: [PATCH] Implement Round 2 language settings
---
privatevoice.src/internal/config/config.go | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/privatevoice.src/internal/config/config.go b/privatevoice.src/internal/config/config.go
index 62b4673..473bf25 100755
--- a/privatevoice.src/internal/config/config.go
+++ b/privatevoice.src/internal/config/config.go
@@ -9,8 +9,10 @@
)
const (
- HotkeyModeTap = "tap"
- HotkeyModeHold = "hold"
+ HotkeyModeTap = "tap"
+ HotkeyModeHold = "hold"
+ LanguageModeAuto = "auto"
+ LanguageModeManual = "manual"
)
// Config holds the application configuration, compatible with the WPF version's config.json.
@@ -25,6 +27,8 @@
IndicatorX int `json:"IndicatorX,omitempty"`
IndicatorY int `json:"IndicatorY,omitempty"`
SelectedModelID string `json:"SelectedModelID,omitempty"`
+ LanguageMode string `json:"LanguageMode,omitempty"`
+ LanguageID string `json:"LanguageID,omitempty"`
ModelDownloadUrl string `json:"ModelDownloadUrl"`
FallbackModelDownloadUrl string `json:"FallbackModelDownloadUrl"`
}
@@ -39,6 +43,8 @@
HideDockIcon: true,
CopyToClipboard: true,
SelectedModelID: model.DefaultModelID,
+ LanguageMode: LanguageModeAuto,
+ LanguageID: model.DefaultLanguageID,
ModelDownloadUrl: "http://www.maikami.com/voicesnap/sensevoice.zip",
FallbackModelDownloadUrl: "https://modelscope.cn/models/sherpa-onnx/sherpa-onnx-sense-voice-zh-en-ja-ko-yue/resolve/master/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17.tar.bz2",
}
@@ -66,6 +72,12 @@
return nil, err
}
cfg.HotkeyMode = NormalizeHotkeyMode(cfg.HotkeyMode)
+ cfg.LanguageMode = NormalizeLanguageMode(cfg.LanguageMode)
+ languageID := cfg.LanguageID
+ cfg.LanguageID = model.NormalizeLanguageID(cfg.LanguageID)
+ if languageID != "" && languageID != cfg.LanguageID {
+ logger.Info("Unknown LanguageID %q, falling back to %q", languageID, cfg.LanguageID)
+ }
selectedModelID := cfg.SelectedModelID
cfg.SelectedModelID = model.NormalizeModelID(cfg.SelectedModelID)
if selectedModelID != "" && selectedModelID != cfg.SelectedModelID {
@@ -74,6 +86,15 @@
return cfg, nil
}
+func NormalizeLanguageMode(mode string) string {
+ switch mode {
+ case LanguageModeAuto, LanguageModeManual:
+ return mode
+ default:
+ return LanguageModeAuto
+ }
+}
+
func NormalizeHotkeyMode(mode string) string {
switch mode {
case HotkeyModeTap, HotkeyModeHold:
--
Gitblit v1.9.3