如何使用角度本地化基于语言更改ts文件

时间:2018-05-14 11:24:56

标签: angular localization internationalization angular-i18n

我的文件errors.tscontent.ts的英文内容与errorsEs.ts相同,contentEs.ts的内容与西班牙content.etc相同。我正在JIT compiler angular localization翻译语言。我在整个应用中导入了errors.tscontent.ts

截至目前,我正在将翻译后的语言(西班牙语,意大利语)内容替换为英语content.tserrors.ts,以将其作为其他语言运行。有没有其他方法可以在不更换文件的情况下完成?

1 个答案:

答案 0 :(得分: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);