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

时间:2014-09-15 20:02:18

标签: go culture

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

e.g。美国的en-US或西班牙的es-es。

2 个答案:

答案 0 :(得分:2)

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

区域设置为stored in HKCU/ControlPanel/International/LocalName(如上所述in this thread

localname

因此,您最好使用访问注册表的项目,例如:

答案 1 :(得分:1)

在基于* 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=