0

我有文件errors.tscontent.ts英语内容相同的方式errorsEs.tscontentEs.ts西班牙语 content.etc。我正在JIT compiler angular localization翻译语言。我已经导入errors.tscontent.ts贯穿整个应用程序。

截至目前,我正在将翻译后的语言(西班牙语、意大利语)内容替换为英语content.ts,并将errors.ts其作为另一种语言运行。有没有其他方法可以在不替换文件的情况下做到这一点?

4

1 回答 1

0

当然,使用名称中的语言环境创建翻译文件(为了示例,我将创建一个):

error.en-US.ts

export const errors = {
  http: {
    e404: `Error: resource not found on the server`
  }
};

接下来,创建一个错误服务。在构造函数中,获取用户语言环境,加载文件,然后使用它:

constructor() {
  if (window.navigator.languages) { this.language = window.navigator.languages[0]; } 
  else { this.language = window.navigator.userLanguage || window.navigator.language; }

  this.errors = require(`errors.${this.language}`).errors;
}

编辑

console.log(window.navigator.languages);
console.log(window.navigator.userLanguage);
console.log(window.navigator.language);

于 2018-05-14T11:38:39.373 回答