| | |
| | | package model |
| | | |
| | | import "fmt" |
| | | import ( |
| | | "fmt" |
| | | "sort" |
| | | ) |
| | | |
| | | const ( |
| | | BackendSenseVoice = "sensevoice" |
| | |
| | | } |
| | | |
| | | 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, |
| | | }, |
| | | } |
| | |
| | | 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 |
| | | } |