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

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

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

【问题讨论】:

    标签: go locale culture


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案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,因为它们优先于LANGgettext for example
      猜你喜欢
      • 2011-03-22
      • 2015-03-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多