2017-09-06 12 views
2

我试图检查纯节点js中的用户语言,没有任何npm的扩展名。 我使用的工艺和全球指挥,有很多的规范,但如果你想获得用户的操作系统语言,你可以尝试从环境得到它我找不到系统语言节点JS - 如何检测用户语言

回答

0

const env = process.env, 
    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_ALL被覆盖,LC_MESSAGES

这里是从Linux ManualLANG环境变量的描述:

的用于语言环境类别的语言环境名称,当不是由LC_ALL或更具体环境覆盖的 诸如LC_COLLATE,LC_CTYPE,LC_MESSAGES,LC_MONETARY, LC_NUMERIC和LC_TIME等易变数 。

+0

这是有效的,但只有在Linux或Mac上。 窗户有类似的东西吗? – Szach

0

答案在你的问题。你不想使用插件,但你可以看看上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 ...)