【问题标题】:Chart.js moment localeChart.js 时刻语言环境
【发布时间】:2016-11-07 05:46:42
【问题描述】:

我正在构建一个 Angular 2 应用程序并使用 Chart.js 2.0 来显示“时间”数据。不幸的是,我无法更改 moment.js 的语言环境。

我 npm 安装了 moment 并使用 SystemJS 导入 moment.js 和 pl.js,但 Chart.js 抱怨必须在 Chart.js 之前加载 moment.js(不知道如何实现,在每个源文件中,moment 都是在 chartjs 之前声明)。

然后我尝试了 Chart.bundle.min.js(包括时刻),它可以工作,但只能用英文。我无法将语言环境更改为“pl”。

以下行对 Chart.bundle.min.js 无效,日期仍以英文显示。

moment.locale('pl');

Chart.js 是否有自己的函数来更改语言环境?文档没有说明任何关于帽子的内容。

【问题讨论】:

    标签: angular momentjs chart.js systemjs


    【解决方案1】:

    Chart.js 不会为您进行日期格式设置 - 可能性和语言环境的数量如此之多,以至于远远超出了项目的范围 - 面对不同的 javascript 日期格式的库。一个很好的例子可能是http://momentjs.com/

    对于绘制数据,您应该使用最适合您的数据的秒/分钟/小时。您可以自定义如何在标签的插值 JS 字符串中设置它的格式 - scaleLabel。对于图表标签,您应该只使用您认为最合适的格式化字符串。

    来源:https://github.com/chartjs/Chart.js/issues/79

    【讨论】:

    • 实际上 chart.js 甚至与 moment.js 捆绑在一起来做到这一点。因此,如果您包含 chart.js 的捆绑版本,您将使用 chart.js 进行格式化。我认为这是预期的问题。
    【解决方案2】:

    您必须在页面上包含您的区域设置文件:

    例如:您可以使用 CDN 找到您的语言环境 https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/locale/pl.js

    例如:鲍尔

    <script src="/bower_components/moment/moment.js"></script>
    <script src="/bower_components/moment/locale/de.js"></script>
    

    【讨论】:

      【解决方案3】:

      Moment 的区域设置必须图表加载之前设置,否则图表必须使用 update() 进行更新。 https://github.com/chartjs/Chart.js/issues/3108

      【讨论】:

      • 所以在绘制购物车之前调用moment.locale(locale);。例如moment.locale('de');
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多