【发布时间】:2014-09-15 20:02:17
【问题描述】:
如何在 Go 中获取计算机的当前语言?
例如en-US 代表美国,es-es 代表西班牙。
【问题讨论】:
如何在 Go 中获取计算机的当前语言?
例如en-US 代表美国,es-es 代表西班牙。
【问题讨论】:
注意:Windows doesn't not rely on LANG environment variable(或LC_* 变量:在我的 Windows 8 上没有定义)
语言环境是stored in HKCU/ControlPanel/International/LocalName(如提到的in this thread)
所以你最好使用访问注册表的项目,例如:
【讨论】:
在基于 *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