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/model/registry.go | 38 +++++++++++++++++++++++++++++++++-----
1 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/privatevoice.src/internal/model/registry.go b/privatevoice.src/internal/model/registry.go
index 9314941..c9db604 100644
--- a/privatevoice.src/internal/model/registry.go
+++ b/privatevoice.src/internal/model/registry.go
@@ -1,6 +1,9 @@
package model
-import "fmt"
+import (
+ "fmt"
+ "sort"
+)
const (
BackendSenseVoice = "sensevoice"
@@ -43,11 +46,20 @@
}
var languageProfiles = map[string]LanguageProfile{
- "zh-CN": {
- ID: "zh-CN",
- DisplayName: "中文",
- UILocale: "zh-CN",
+ DefaultLanguageID: {
+ ID: DefaultLanguageID,
+ DisplayName: "Chinese",
+ NativeName: "中文",
+ UILocale: "zh",
SystemMatchers: []string{"zh", "zh-CN", "zh-Hans", "zh-Hant"},
+ DefaultModelID: DefaultModelID,
+ },
+ EnglishLanguageID: {
+ ID: EnglishLanguageID,
+ DisplayName: "English",
+ NativeName: "English",
+ UILocale: "en",
+ SystemMatchers: []string{"en", "en-US", "en-GB", "en-AU", "en-CA"},
DefaultModelID: DefaultModelID,
},
}
@@ -95,5 +107,21 @@
for _, profile := range languageProfiles {
profiles = append(profiles, profile)
}
+ sort.Slice(profiles, func(i, j int) bool {
+ if profiles[i].ID == DefaultLanguageID {
+ return true
+ }
+ if profiles[j].ID == DefaultLanguageID {
+ return false
+ }
+ return profiles[i].ID < profiles[j].ID
+ })
return profiles
}
+
+func NormalizeLanguageID(id string) string {
+ if _, err := GetLanguageProfile(id); err != nil {
+ return DefaultLanguageID
+ }
+ return id
+}
--
Gitblit v1.9.3