Javascript 如何在Angular中具体化p-calendar区域设置

Javascript 如何在Angular中具体化p-calendar区域设置,javascript,angular,primeng,Javascript,Angular,Primeng,我正在使用Priming 6中的p-calendar。默认情况下,日历以英语显示所有内容,但我们可以使用[locale]=anyLanguage更改日期、天数、月份等。你可以看到现在我只添加了两种语言,即西班牙语和阿拉伯语 app.component.html <p-calendar [(ngModel)]="value" name="test" [locale]="arabic"></p-calendar>

我正在使用Priming 6中的
p-calendar
。默认情况下,日历以英语显示所有内容,但我们可以使用
[locale]=anyLanguage
更改日期、天数、月份等。你可以看到现在我只添加了两种语言,即西班牙语和阿拉伯语

app.component.html

<p-calendar [(ngModel)]="value" name="test" [locale]="arabic"></p-calendar>

我的技术主管对此不满意。她说,如果明天我们再增加15种语言,那么谁将回到代码。她想让我把它保存在另一个typescript文件或json的外部某处。这样我们以后可以添加更多的语言。但是,语言环境明天可以通过父组件传递,所以这不是问题。但是请帮助我如何将语言变量外部化。

首先,我建议您寻找一个库来国际化应用程序。这将允许您将所有翻译保存在一个单独的文件中(例如,或)。您可以设置默认语言,当用户更改语言时,您可以更改舌头。这样,语言变量将被外部化

其次,我建议升级Priming版本11,它有一个允许您翻译日历组件的功能。此外,它与许多库一起工作,就像我之前所说的

有了这些版本而没有任何库,唯一的方法就是如何使用它

import { Component, OnInit, VERSION } from "@angular/core";
import moment, { Moment } from "moment";

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent implements OnInit {
  name = "Angular " + VERSION.major;

  value;

  public es: any;
  public arabic: any;

  ngOnInit() {

    // spanish calendar
    this.es = {
      ...
    };

    // arabic calendar
    this.arabic= {
      ...
    };
  }
}