如何在 Go 中获取计算机的当前语言?

Posted

技术标签:

【中文标题】如何在 Go 中获取计算机的当前语言?【英文标题】:How do I get the computer's current language in Go? 【发布时间】:2014-09-15 20:02:17 【问题描述】:

例如en-US 代表美国,es-es 代表西班牙。

【问题讨论】:

【参考方案1】:

注意:Windows doesn't not rely on LANG environment variable(或LC_* 变量:在我的 Windows 8 上没有定义)

语言环境是stored in HKCU/ControlPanel/International/LocalName(如提到的in this thread)

所以你最好使用访问注册表的项目,例如:

registry/registry.go gowin

【讨论】:

【参考方案2】:

在基于 *nix 的系统上,您可以简单地使用 os.Getenv("LANG"),我不确定这是否适用于 windows。

//编辑

@JimB 提到还有其他变量需要检查,更多详细信息请查看gettext

在我的系统上:

➜ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

【讨论】:

您可能还想检查LC_* 变量,例如LC_MESSAGES,因为它们优先于LANG。 gettext for example

以上是关于如何在 Go 中获取计算机的当前语言?的主要内容,如果未能解决你的问题,请参考以下文章

go语言标准库之time

Go语言基础之time包

13.Go语言标准库之time包

在c语言中如何获取当前日期?

如何为Linux安装Go语言

python语言如何使用print()打印当前行