节点JS – 如何检测用户语言
我试图检查纯节点js中的用户语言,没有从npm的任何扩展。 我使用过程和全局命令,有很多规范,但我无法find系统语言
如果你想获得用户的操作系统语言,你可以尝试从环境中获得它:
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-8
, uk_UA.UTF-8
但是,它可以被不同的环境variables如LC_ALL
, LC_MESSAGES
等所覆盖
以下是来自Linux手册的 LANG
envvariables的描述:
未被LC_ALL或LC_COLLATE,LC_CTYPE,LC_MESSAGES,LC_MONETARY,LC_NUMERIC和LC_TIME等更具体的环境variables覆盖时用于语言环境类别的语言环境的名称。
答案在你的问题。 你不想使用插件,但你可以看看他们是如何做到的 🙂
答案是environment
扰stream板
function getEnvLocale(env) { env = env || process.env; return env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE; }
不要忘记适应不同的平台(mac,linux,windows …)