Angular2 i18n语言切换

Loi*_*c T 18 dynamic internationalization switching typescript angular

我正在寻找一种方法

  • 动态设置要显示的当前语言:我在这里关注了国际化的最新角度菜谱,但它说" 用户的语言被硬编码为index.html中的全局document.locale变量 "

如何在angular2 +打字稿中动态设置?

这是我从官方Angular2 plunkr的尝试:https://plnkr.co/edit/lWV4VhzpWYnCXeDBpzsn?p = preview 我评论过的地方

document.locale='en';
Run Code Online (Sandbox Code Playgroud)

并试图检索打字稿服务里面的window.document,修改本地化那里,但是,尽管它被称为和正确设置区域设置(在控制台中看到的),接口未在所选择的语言显示在启动.

然后当然下拉按钮也不起作用,因为使用了相同的错误方式并且没有刷新显示但这是下一步.

use*_*588 18

我将用户选择的语言密钥保存到本地存储中:

//<select name="selectLocate" (change)="onChange($event.target.value)">
 public onChange(localeId: string): void {
    localStorage.setItem('localeId', localeId);
    location.reload(true);
  }
Run Code Online (Sandbox Code Playgroud)

然后强行重装,然后进入 i18n.provider.ts

let locale = localStorage.getItem('localeId');
Run Code Online (Sandbox Code Playgroud)