D3.js 如何获取特定于国家/地区的格式规则?
我目前正在为构建工作流,并希望对区域设置的选择进行参数化 因此,我希望用户通过提供IETF语言标记(如“us En”或“fr fr”)来指定其国家代码,并从中获得特定于国家的格式规则(我需要的格式见下文) 例如,我正在寻找一个函数,该函数为不同的国家/地区代码生成以下输出:D3.js 如何获取特定于国家/地区的格式规则?,d3.js,vega-lite,D3.js,Vega Lite,我目前正在为构建工作流,并希望对区域设置的选择进行参数化 因此,我希望用户通过提供IETF语言标记(如“us En”或“fr fr”)来指定其国家代码,并从中获得特定于国家的格式规则(我需要的格式见下文) 例如,我正在寻找一个函数,该函数为不同的国家/地区代码生成以下输出: function getLocaleFormats(countryCode) { if (countryCode === "de-DE") { return {
function getLocaleFormats(countryCode) {
if (countryCode === "de-DE") {
return {
"decimal": ",",
"thousands": ".",
"grouping": [3],
"currency": ["€", ""],
"dateTime": "%a %b %e %X %Y",
"date": "%d.%m.%Y",
"time": "%H:%M:%S",
"periods": ["AM", "PM"],
"days": ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
"shortDays": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
"months": ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
"shortMonths": ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]
};
}
}
非常感谢您的帮助。您正在寻找内置对象:
resolvedOptions()
,以获取有关该区域设置中使用的格式的详细信息
例如:
const nf=new Intl.NumberFormat('en-US');
const df=新的Intl.DateTimeFormat('en-US');
const nfOptions=nf.resolvedOptions();
const dfOptions=df.resolvedOptions();
console.dir(n选项);
console.dir(dfOptions)代码>我找到了我需要的参考资料,它们位于:
https://unpkg.com/d3-format@1/locale/${countryCode}.json
https://unpkg.com/d3-time-format@1/locale/${countryCode}.json
国家代码是IETF语言标签,如“us En”
p、 我注意到这些格式规则是在d3.js中指定的,因为vega lite是基于d3.js构建的,所以我在问题中添加了d3.js和vega lite标记。不清楚具体的问题或问题是什么,我想很清楚:我正在寻找一个函数,它可以返回任何国家代码的格式(在上面的示例中,我只是将其手工编码为“de de”)我想我从Intl.Locale()中得到了它但是找不到任何东西立即签出语言环境文件。可能会帮助你谢谢,这似乎是一个可能的来源。我只是认为javascript语言中可能有一些API,而不需要单独的库,因为我的问题似乎适用范围很广,但我如何获得格式,它将格式应用于字符串。How我可以从Intl获取格式规则(如问题中所述),例如,对于“千”或“日期”的“en US”?如果您需要自定义格式,Intl
不是您的朋友。它具有许多地区的通用格式,但其可配置性有些有限。要获取当前应用于实例的选项,例如const f=new Intl.NumberFormat('en-US');
您可以使用f.resolvedOptions()
了解详细信息。如果您深入了解可用的内容,我相信您可以构建像您所展示的那样的对象。感谢您指出这一点,我不知道resolveOptions()