Go 如何从字符串中获取有效的IETF语言标记
我想将locale标记转换为IETF标准。 IETF语言标记将Go 如何从字符串中获取有效的IETF语言标记,go,locale,Go,Locale,我想将locale标记转换为IETF标准。 IETF语言标记将en-US作为美式英语的正确标记。 在五月的情况下,我可能会得到en_US作为输入 目前我正在使用此方法: func toLanguageTag(l string) string { return strings.Replace(l, "_", "-", -1) } 例如,我知道Java有方法。我应该继续使用这种方法,还是有更好的方法来做我想做的事情?在Go的外部包存储库中有一个包(由Go项目维护,但不是标准库的一部分),用
en-US
作为美式英语的正确标记。
在五月的情况下,我可能会得到en_US
作为输入
目前我正在使用此方法:
func toLanguageTag(l string) string {
return strings.Replace(l, "_", "-", -1)
}
例如,我知道Java有方法。我应该继续使用这种方法,还是有更好的方法来做我想做的事情?在Go的外部包存储库中有一个包(由Go项目维护,但不是标准库的一部分),用于处理语言标记的解析和验证 例如:
package main
import (
"fmt"
"golang.org/x/text/language"
)
func main() {
tag := language.Make("en_us")
fmt.Println(tag)
}
// Output: en-US
请注意,
language.Make()
会在标记无效的情况下忽略错误。您应该使用language.Parse()
,它实际上会返回一个错误。Go的外部包存储库中有一个包(由Go项目维护,但不属于标准库),用于处理语言标记的解析和验证
例如:
package main
import (
"fmt"
"golang.org/x/text/language"
)
func main() {
tag := language.Make("en_us")
fmt.Println(tag)
}
// Output: en-US
请注意,
language.Make()
会在标记无效的情况下忽略错误。你应该使用language.Parse()
,它在实践中返回一个错误。这家伙遵守了这家伙遵守了