Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js 如何获取特定于国家/地区的格式规则?_D3.js_Vega Lite - Fatal编程技术网

D3.js 如何获取特定于国家/地区的格式规则?

D3.js 如何获取特定于国家/地区的格式规则?,d3.js,vega-lite,D3.js,Vega Lite,我目前正在为构建工作流,并希望对区域设置的选择进行参数化 因此,我希望用户通过提供IETF语言标记(如“us En”或“fr fr”)来指定其国家代码,并从中获得特定于国家的格式规则(我需要的格式见下文) 例如,我正在寻找一个函数,该函数为不同的国家/地区代码生成以下输出: function getLocaleFormats(countryCode) { if (countryCode === "de-DE") { return {

我目前正在为构建工作流,并希望对区域设置的选择进行参数化

因此,我希望用户通过提供IETF语言标记(如“us En”或“fr fr”)来指定其国家代码,并从中获得特定于国家的格式规则(我需要的格式见下文)

例如,我正在寻找一个函数,该函数为不同的国家/地区代码生成以下输出:

   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()