Как преобразовать код языка в его собственное имя в Go?

# #go

Вопрос:

Мне нужно преобразовать языковые коды, такие как 'en-US' или 'ja' , в их собственные имена, такие как 'American English' и 'Japanese' . Как мне это сделать?

Ответ №1:

У меня возникли некоторые трудности с поиском этого, так как функциональность распределена по 2 разным пакетам — 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))   // --> 日本語

    // To get the language names in English
    en := display.English.Languages()
    fmt.Println(en.Name(japTag))             // --> Japanese
}