Open humjosh opened 5 years ago
go version go1.11 darwin/amd64
amd64, macOS Sierra 10.12.6
package main import ( "fmt" "golang.org/x/text/language" ) func main() { preferredTags := []language.Tag{language.English, language.Malay} matcher := language.NewMatcher(preferredTags) locale := "en-SG;q=1.0, zh-Hant-HK;q=0.9, ms-SG;q=0.8, ja-SG;q=0.7, zh-Hans-SG;q=0.6, en-GB;q=0.5" tags, _, _ := language.ParseAcceptLanguage(locale) match, _, confidence := matcher.Match(tags...) fmt.Printf("Matched %v with confidence %v", match, confidence) }
Matched en with confidence Exact
Matched ms-u-rg-sgzzzz with confidence High
If you replace en-SG with en-US in the locale string, then it does indeed exactly match to en (en-u-rg-uszzzz)
en-SG
en-US
locale
en
en-u-rg-uszzzz
/cc @mpvl
What version of Go are you using (go version)?
go version go1.11 darwin/amd64
What operating system and processor architecture are you using (go env)?
amd64, macOS Sierra 10.12.6
What did you do?
What did you expect to see?
What did you see instead?
If you replace
en-SG
withen-US
in thelocale
string, then it does indeed exactly match toen
(en-u-rg-uszzzz
)