与ngx-translate

时间:2017-12-27 21:39:15

标签: angular highcharts internationalization ngx-translate

我目前正在为我的项目使用Angular 4,并且正在使用ngx-translate(i18n)来启用用户切换语言。这些设置在i18n文件夹中,其中包含不同语言的json文件。我也在使用高图表的许多图表,我发现当我检查他们的API他们也使用i18n语言。但是,从我在API文档中收集到的是我需要在HighCharts上使用setOptions并在那里指定翻译单词,但是,我想知道是否可以使用我目前用于ngx-translate的json文件来完成?或者,如果用户能够在语言之间切换,我应该如何使用setOptions?

1 个答案:

答案 0 :(得分:0)

演示展示了如何动态执行andThenhttp://jsfiddle.net/kkulig/1qLqhtmd/

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>


#define MAX_NUM 50
sem_t sem1, sem2, sem3;

void *f1(void* p)
{
  for(int i=1; i<=MAX_NUM; i++)
  {
  sem_wait(&sem1);
    printf("\nF1(): %d", 1);
    sem_post(&sem2);
  }
}

void *f2(void* p)
{
  for(int i=1; i<=MAX_NUM; i++)
  {
  sem_wait(&sem2);
     printf("\nF2(): %d", 2);
     sem_post(&sem3);
  }
}

void *f3(void* p)
{
  for(int i=1; i<=MAX_NUM; i++)
  {
  sem_wait(&sem3);
    printf("\nF3(): %d", 3);
    sem_post(&sem1);
 }
}


int main()
{
   pthread_t p1, p2, p3;
   sem_init(&sem1, 0, 1);
   sem_init(&sem2, 0, 0);
   sem_init(&sem3, 0, 0);

  pthread_create(&p1, NULL, f1,  (void*)NULL);
  pthread_create(&p2, NULL, f2,  (void*)NULL);
  pthread_create(&p3, NULL, f3,  (void*)NULL);
  pthread_join(p1, NULL);
  pthread_join(p2, NULL);
  pthread_join(p3, NULL);

  return 0;

}

请注意,此处需要setOptions。如果我们将它注释掉,小数点将仅在3s后的工具提示中有所不同(轴标签不会改变)。

我认为最简单的方法是创建一个函数,将从文件中获取的JSON格式化为var chart = Highcharts.chart('container', { series: [{ data: [5.5656565, 20] }] }); setTimeout(function (){ Highcharts.setOptions({ lang: { decimalPoint: ' and after the dot is ' } }); chart.redraw(); }, 3000); 可接受的结构(因为它的参数也是JSON)并使用chart.redraw()如上例所示。