【问题标题】:Hichcharts CSV Import - Series NameHichcharts CSV 导入 - 系列名称
【发布时间】:2017-01-31 09:02:24
【问题描述】:

我们将 CSV 文件导入 Highcharts。第一行包含系列的名称。 现在我们需要为另一种语言显示我们的图表。 我们如何获得系列名称并翻译它们?或者在从 CSV 导入时有另一种命名系列的方法吗?

我们像下面的代码一样导入 csv:

 $.get('data.csv', function(csv) {
 Highcharts.setOptions({
 colors: ['#ffd800']
});
  $('.loadDiv1').hide();
  $('#chart_1').highcharts({
      chart: {
          type: 'area'
      },
      data: {
          csv: csv,
          itemDelimiter: ';',
          lineDelimiter: '\n',
          decimalPoint: ','
      },
      title: {
          text: '<?php echo $lang['79']; ?>',
          style: {
              color: '#68666b',
              fontWeight: 'bold',
              fontSize: '14px'
          }
      },
      yAxis: {
        min: 1,
        max: 10,

        tickInterval: 1,
          title: {
              text: ''
          },
          labels: {
              format: '{value} kW'
          }

      },
      legend:{
           enabled: false       
      },
      plotOptions: {
        series: {
            marker: {
                enabled: false
            }
        }
    },
      credits: {
          enabled: false
      }
  });
});

CSV 文件如下所示:

row;Serienname 1;Serienname 2;Serienname 3;Serienname 4;Serienname 5
00:00;0,00;0,00;0,00;0,00;0,00
00:02;0,00;0,00;0,00;0,00;0,00

我们需要将“Serienname 1 -5”(名称仅为示例,我们使用其他德语单词)翻译成不同的语言。

感谢您的帮助 尼尔

【问题讨论】:

  • 您应该翻译您的源 CSV。
  • 您是否有使用字典(或类似工具)进行翻译的功能,或者您打算如何翻译每个单词?
  • 那么对于每种语言都有一个单独的 CSV?没有其他可能控制/获取名称并与它们一起工作?
  • @Victor 我们检查 PHP 的语言会话设置并根据会话加载单独的 lang.php 文件中的单词。
  • Highcharts 支持多种语言,但仅限于它们的默认值。看看这个“api.highcharts.com/highcharts/lang”。您要导入的 CSV 不属于 Highcarts 默认名称类别,因此您必须已经翻译 CSV 或使用自定义函数解析 CSV 并在解析期间对其进行翻译。我亲自制作了自己的解析器,并在解析过程中对其进行翻译。我不知道另一种翻译方式。

标签: javascript csv highcharts


【解决方案1】:

这里有一个例子你可以做自定义预处理csv custom preprocessing

你大概可以用这个jquery插件来翻译translate.js

Adding classes to series

chart: {
        renderTo: 'container',
        defaultSeriesType: 'line',
        marginRight: 50,
        marginBottom: 175,
        events: {
            load: function () {
                var chart = this;
                $(chart.series).each(function (i, serie) {
                    $('<li style="color: ' + serie.color + '">' + serie.name + '</li>').click(function () {
                        serie.visible ? serie.hide() : serie.show();
                    }).appendTo('#legend');
                });
            }
        }
    }

【讨论】:

  • 这看起来很有趣。但为此,我需要向名称显示的 Div 添加一个类 - 这导致了一个问题:我怎样才能让 Divs 添加一个类:)
  • 你的意思是像下面这样使用 jQuery 添加一个类吗? $('#chart_1').addClass('some_class');
  • 不,我的意思是在显示系列名称的 div 中添加一个类。
猜你喜欢
  • 1970-01-01
  • 2011-07-08
  • 2020-10-13
  • 2013-07-30
  • 1970-01-01
  • 2013-08-21
  • 2017-07-23
  • 2020-07-25
  • 2018-02-03
相关资源
最近更新 更多