ChartJS:将x轴月翻译成其他语言

问题描述 投票:2回答:1

我很难找到如何翻译时间轴。我正在使用MMM YYYY来显示xAxes中的时间格式。

它始终显示日期,如May 2018。有谁知道如何本地化?

例如,如果语言是法语,则月份应显示为Mai而不是May。我到处搜索,只发现有人说使用time.parser可以做到这一点,但我不知道该怎么做。

任何建议,将不胜感激。

angularjs localization chart.js momentjs
1个回答
0
投票

我在Ruby on Rails应用程序中遇到了同样的问题。

我们不使用angularjs,但我认为使用Chart.js的方式非常相似。

我将发布我管理它的方式在Ruby on Rails中工作并抛光语言环境。但您应该能够轻松自定义解决方案以使用Angular.js

  1. 在moment.js库的JavaScript包中包含moment.js语言环境
//= require moment
//= require moment/pl.js
  1. 添加自定义displayFormats以便更容易在回调函数中解析日期。并添加回调函数以再次解析和格式化日期。
options: {
                    ...
                    scales: {
                        xAxes: [{
                            type: 'time',
                            time: {
                              displayFormats: {
                               'hour': 'HH:mm',
                               'day': 'DD-MM-YYYY',
                               'week': 'DD-MM-YYYY',
                               'month': 'DD-MM-YYYY',
                              },
                              unit: '<%= @report.scale %>',
                            },
                            ticks: {
                              callback: function(value, index) {
                                let displayFormats = {
                                  'hour': 'HH:mm',
                                  'day': 'DD-MM-YYYY',
                                  'week': 'YYYY WW',
                                  'month': 'MMMM YYYY',
                                };
                                let unit = '<%= @report.scale %>';
                                let format = displayFormats[unit];
                                return moment(value, 'DD-MM-YYYY').format(format, value);
                              }
                            }
                        }],

出于某种原因,Chart.js中的moment.js忽略了语言环境。但是当在回调函数内再次调用moment.js时,它运行良好。

我为月以外的所有单位增加了警卫回报。我不想重新整理和重新格式化日期以外的日期。

© www.soinside.com 2019 - 2024. All rights reserved.