Golang获取系统语言

mar*_*nga 6 internationalization go

是否有获取用户系统语言的功能,但我在Go网站上的任何地方都找不到。

为了澄清我的问题,我想要当前用户的系统语言,这意味着当系统上的所有内容(例如荷兰语)时,我想获取“ dutch”或“ nl”

注意:该程序是在Linux,Mac和Windows上运行的

Ber*_*ant 5

有一个很好的跨平台库,称为 jibber_jabber ,它在 Unix 系统中查找$LC_ALL或$LANGenv 变量,对于 Windows,加载Kernel32并调用一些类似GetUserDefaultLocaleName或GetSystemDefaultLocaleName内部的过程。对于 Windows,一切都在getWindowsLocale() 函数中完成 。请注意 Kernel32 库内置于 Windows 操作系统内核中。

By the way, should you need to convert locale-format'd language strings like en_US and fr_FR, you can utilize the x/text/language and x/text/language/display packages to get fully qualified name of the language.

lang := "ru_RU"
tag := language.MustParse(lang)

inEng := display.English.Languages()
inTur := display.Turkish.Languages()
inSelf := display.Self

fmt.Println(inEng.Name(tag))
fmt.Println(inSelf.Name(tag))
fmt.Println(inTur.Name(tag))

   // Output:
   // Russian
   // ???????
   // Rusça
Run Code Online (Sandbox Code Playgroud)