如何在Go中获取计算机的当前语言?
e.g。美国的en-US或西班牙的es-es。
答案 0 :(得分:2)
注意:Windows doesn't not rely on LANG
environment variable(或LC_*
变量:无法在我的Windows 8上定义)
区域设置为stored in HKCU/ControlPanel/International/LocalName
(如上所述in this thread)
因此,您最好使用访问注册表的项目,例如:
答案 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=