首页 > 解决方案 > 我们有一个文化信息类。net ,我们在 node js 中是否有类似的结构/包?

问题描述

我有一个当前的语言环境,例如。zh-CNS-HK 例如。

cultureString = "zh-CNS-HK";
var cultureObject = new CultureInfo(cultureString); ***// culture object to specific locale***

我们很少cultureObject有像中性文化和特定文化这样的属性。因此,如果我需要特定的文化,我会得到 likecultureObject.name = "zh-HK"而不是zh-CNS-HK.

如何zh-HK在节点 js 中获得相同的东西()?以及如何检查它是中性文化还是特定文化?

注意:Currentlocale我从 Windows 注册表中提取它。

标签: node.js

解决方案


Node.js(和 JavaScript)中的可比较对象可能是Intl对象。

这使您可以获取日期/时间格式等。

您可以使用 Locale region 属性来确定它是特定区域还是中性区域,

要了解语言环境格式,我会看一下 BCP 47 标准(https://tools.ietf.org/html/bcp47

例如

const date = new Date("2020-05-14T05:30:00Z");
let locale = "zh-HK";
const formatter = new Intl.DateTimeFormat(locale);
console.log("Formatted date:", formatter.format(date));

console.log("locale region (zh-HK):", new Intl.Locale("zh-HK").region);

console.log("locale region (zh):", new Intl.Locale("zh").region);

function isSpecificLocale(locale) {
    return (!!locale.region);
}

console.log("IsSpecificLocale (zh-HK):", isSpecificLocale(new Intl.Locale("zh-HK")));
console.log("IsSpecificLocale (zh):", isSpecificLocale(new Intl.Locale("zh")));


推荐阅读