opencode-provider-switch/internal/desktop/tray_language.go
apale7 8fc72e87e4 fix(desktop): finish Windows shell polish
Stabilize the tray icon and locale handling on Windows while aligning provider and alias management panels with the refreshed desktop branding.
2026-04-20 02:36:54 +08:00

37 lines
811 B
Go

//go:build desktop_wails
package desktop
import (
"os"
"strings"
)
var systemTrayLanguage = detectSystemTrayLanguage
func trayLanguage(preference string) string {
if language := normalizeTrayLanguage(strings.TrimSpace(preference)); language != "" {
return language
}
if language := normalizeTrayLanguage(systemTrayLanguage()); language != "" {
return language
}
for _, value := range []string{os.Getenv("LC_ALL"), os.Getenv("LANG"), os.Getenv("LANGUAGE")} {
if language := normalizeTrayLanguage(value); language != "" {
return language
}
}
return "en-US"
}
func normalizeTrayLanguage(value string) string {
lower := strings.ToLower(strings.TrimSpace(value))
if strings.HasPrefix(lower, "zh") {
return "zh-CN"
}
if strings.HasPrefix(lower, "en") {
return "en-US"
}
return ""
}