在 Golang 中验证区域设置字符串

Sam*_*G-H 3 locale go

我正在尝试编写 Go 代码来检查字符串是否代表有效的语言环境。从文档中,我已经到了这里:

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

locale := "en"
tag, err := language.Parse(locale)
if err != nil {
    return errors.New("Invalid locale: " + locale)
}
Run Code Online (Sandbox Code Playgroud)

我认为这应该有效,而且它似乎在大多数情况下都有效,但是当我期望它时,它并不总是给我一个错误。例如,如果我说locale := "bcd"我没有收到错误。

我在这里缺少什么?

hob*_*bbs 5

bcd 是 North Babar 语言的有效 ISO 639-3 语言代码,并且通过扩展它是有效的区域设置名称。