英文:
How do I convert a language code to its proper name in Go?
问题
你可以使用语言代码和名称之间的映射表来进行转换。以下是一个示例代码,可以将语言代码转换为对应的语言名称:
language_map = {
'en-US': 'American English',
'ja': 'Japanese',
# 添加更多的语言代码和名称
}
def convert_language_code(code):
if code in language_map:
return language_map[code]
else:
return 'Unknown'
# 示例用法
code = 'en-US'
language_name = convert_language_code(code)
print(language_name) # 输出:American English
你可以根据需要扩展language_map
字典,添加更多的语言代码和对应的语言名称。然后,使用convert_language_code
函数将语言代码转换为对应的语言名称。如果给定的语言代码在映射表中不存在,函数将返回"Unknown"。
英文:
I need to convert language codes like 'en-US'
or 'ja'
to their proper names like 'American English'
and 'Japanese'
. How do I do this?
答案1
得分: 4
我在查找这个功能时遇到了一些困难,因为它分散在两个不同的包中——languages
和display
,而不是在一个包中。希望这对那些找不到如何做到这一点的人有所帮助。
文档链接:
https://pkg.go.dev/golang.org/x/text/language#CanonType.MustParse
https://pkg.go.dev/golang.org/x/text@v0.3.7/language/display#Namer
示例程序:
package main
import (
"fmt"
"golang.org/x/text/language"
"golang.org/x/text/language/display"
)
func main() {
japTag := language.MustParse("ja")
fmt.Println(display.Self.Name(japTag)) // --> 日本語
// 获取英文的语言名称
en := display.English.Languages()
fmt.Println(en.Name(japTag)) // --> Japanese
}
英文:
I had some difficulty in finding this since the functionality is spread across 2 different packages - languages
and display
instead of being in one. Hope this helps someone who couldn't find out how to do this.
links to documentation:
https://pkg.go.dev/golang.org/x/text/language#CanonType.MustParse
https://pkg.go.dev/golang.org/x/text@v0.3.7/language/display#Namer
Sample Program:
package main
import (
"fmt"
"golang.org/x/text/language"
"golang.org/x/text/language/display"
)
func main() {
japTag := language.MustParse("ja")
fmt.Println(display.Self.Name(japTag)) // --> 日本語
// To get the language names in English
en := display.English.Languages()
fmt.Println(en.Name(japTag)) // --> Japanese
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论