Node JS - 如何检测用户语言

时间:2017-09-06 09:59:23

标签: node.js

我尝试检查纯节点js中的用户语言,而没有来自npm的任何扩展。 我使用过程和全局命令,有很多规范,但我找不到系统语言

3 个答案:

答案 0 :(得分:2)

如果您想获得用户的操作系统语言,可以尝试从环境中获取它:

const env = process.env;
const language = env.LANG || env.LANGUAGE || env.LC_ALL || env.LC_MESSAGES;

在大多数情况下,process.env.LANG应该有效。它将包含ISO 639-1语言代码,ISO 3166-1国家代码和编码名称。

示例:en_US.UTF-8uk_UA.UTF-8

但是,它可以被不同的环境变量覆盖,例如LC_ALLLC_MESSAGES等。

以下是来自Linux ManualLANG env变量的说明:

  

用于区域设置类别的区域设置的名称   被LC_ALL或更具体的环境变量覆盖   例如LC_COLLATE,LC_CTYPE,LC_MESSAGES,LC_MONETARY,   LC_NUMERIC和LC_TIME。

答案 1 :(得分:1)

答案在您的问题中。您不想使用插件,但可以查看how they do it:)

答案是environment

<强>扰流

function getEnvLocale(env) {
    env = env || process.env;

    return env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;
}

不要忘记适应不同的平台(mac,linux,windows ...)

答案 2 :(得分:1)

这是一种与OS /节点/浏览器无关的获取默认语言环境的方法

Intl.DateTimeFormat().resolvedOptions().locale