【发布时间】:2017-09-06 09:59:22
【问题描述】:
我正在尝试检查纯节点 js 中的用户语言,没有来自 npm 的任何扩展。 我使用了进程和全局命令,有很多规范但我找不到系统语言
【问题讨论】:
标签: node.js
我正在尝试检查纯节点 js 中的用户语言,没有来自 npm 的任何扩展。 我使用了进程和全局命令,有很多规范但我找不到系统语言
【问题讨论】:
标签: node.js
这是获取默认语言环境的一种独立于操作系统/节点/浏览器的方法
Intl.DateTimeFormat().resolvedOptions().locale
【讨论】:
答案就在您的问题中。你不想使用插件,但你可以看看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...)
【讨论】:
LC_NAME: 'en_ZA.UTF-8
如果您想获取用户的操作系统语言,您可以尝试从环境中获取它:
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 环境变量的描述:
在不使用时用于区域设置类别的区域设置名称 被 LC_ALL 或更具体的环境变量覆盖 例如 LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_MONETARY、 LC_NUMERIC 和 LC_TIME。
【讨论】: