Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何从字符串中获取有效的IETF语言标记_Go_Locale - Fatal编程技术网

Go 如何从字符串中获取有效的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项目维护,但不是标准库的一部分),用

我想将locale标记转换为IETF标准。 IETF语言标记将
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()
,它在实践中返回一个错误。

这家伙遵守了这家伙遵守了