我尝试检查纯节点js中的用户语言,而没有来自npm的任何扩展。 我使用过程和全局命令,有很多规范,但我找不到系统语言
答案 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-8
,uk_UA.UTF-8
但是,它可以被不同的环境变量覆盖,例如LC_ALL
,LC_MESSAGES
等。
以下是来自Linux Manual的LANG
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