How do I convert a language code to its proper name in Go?

huangapple go评论114阅读模式
英文:

How do I convert a language code to its proper name in Go?

问题

你可以使用语言代码和名称之间的映射表来进行转换。以下是一个示例代码,可以将语言代码转换为对应的语言名称:

  1. language_map = {
  2. 'en-US': 'American English',
  3. 'ja': 'Japanese',
  4. # 添加更多的语言代码和名称
  5. }
  6. def convert_language_code(code):
  7. if code in language_map:
  8. return language_map[code]
  9. else:
  10. return 'Unknown'
  11. # 示例用法
  12. code = 'en-US'
  13. language_name = convert_language_code(code)
  14. 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

我在查找这个功能时遇到了一些困难,因为它分散在两个不同的包中——languagesdisplay,而不是在一个包中。希望这对那些找不到如何做到这一点的人有所帮助。

文档链接:
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

示例程序:

  1. package main
  2. import (
  3. "fmt"
  4. "golang.org/x/text/language"
  5. "golang.org/x/text/language/display"
  6. )
  7. func main() {
  8. japTag := language.MustParse("ja")
  9. fmt.Println(display.Self.Name(japTag)) // --> 日本語
  10. // 获取英文的语言名称
  11. en := display.English.Languages()
  12. fmt.Println(en.Name(japTag)) // --> Japanese
  13. }
英文:

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:

  1. package main
  2. import (
  3. "fmt"
  4. "golang.org/x/text/language"
  5. "golang.org/x/text/language/display"
  6. )
  7. func main() {
  8. japTag := language.MustParse("ja")
  9. fmt.Println(display.Self.Name(japTag)) // --> 日本語
  10. // To get the language names in English
  11. en := display.English.Languages()
  12. fmt.Println(en.Name(japTag)) // --> Japanese
  13. }

huangapple
  • 本文由 发表于 2021年10月5日 14:14:08
  • 转载请务必保留本文链接:https://go.coder-hub.com/69445633.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定