如何在 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 中获取计算机的当前语言?的主要内容,如果未能解决你的问题,请参考以下文章