2018-08-02T00:46:56Z||2018-08-02T00:46:56Z


本文适用于Go 1.10

根据GoDoc文档: https://godoc.org/golang.org/x/text/language

首先引入package:

import "golang.org/x/text/language"

初始化matcher对象:

var matcher = language.NewMatcher([]language.Tag{
    language.English,   // The first language is used as fallback.
    language.MustParse("en-AU"),
    language.Danish,
    language.Chinese,
})

然后在HTTP Handler中判断当前匹配的语言:

handler(w http.ResponseWriter, r *http.Request) {
    lang, _ := r.Cookie("lang")
    accept := r.Header.Get("Accept-Language")
    tag, _ := language.MatchStrings(matcher, lang.String(), accept)

    // tag should now be used for the initialization of any
    // locale-specific service.
}