Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2 i18n语言开关_Angular_Dynamic_Typescript_Internationalization_Switching - Fatal编程技术网

Angular2 i18n语言开关

Angular2 i18n语言开关,angular,dynamic,typescript,internationalization,switching,Angular,Dynamic,Typescript,Internationalization,Switching,我正在寻找一种方法来解决这个问题 动态设置要显示的当前语言:我遵循了关于国际化的最新手册 但是它说“用户的语言被硬编码为index.html中的全局document.locale变量” 如何在angular2+typescript中动态设置 以下是官方Angular2 plunkr的尝试: 在这里我已经注释掉了 document.locale='en'; 并尝试在typescript服务中检索window.document,并在其中更改区域设置,但尽管调用了该窗口并正确设置了区域设置(在控

我正在寻找一种方法来解决这个问题

  • 动态设置要显示的当前语言:我遵循了关于国际化的最新手册 但是它说“用户的语言被硬编码为index.html中的全局document.locale变量”
如何在angular2+typescript中动态设置

以下是官方Angular2 plunkr的尝试: 在这里我已经注释掉了

document.locale='en';
并尝试在typescript服务中检索window.document,并在其中更改区域设置,但尽管调用了该窗口并正确设置了区域设置(在控制台中可以看到),但启动时界面不会以所选语言显示


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

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

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

同时,我已经完成了一个版本,它读取document.URL并在i18n-providers.ts文件中设置document.locale。这当然不是正确的方法,但在此期间,我可以进行简单而伟大的翻译工作(这个例子在plunkr上不起作用,但在本地有效)。我已经更改了plunkr示例,效果很好!我没有使用systemsjs。是否可以使用webpack进行配置?@sardarCoder不知道您是否仍在努力解决这个问题,但如果是这样的话。是的,您可以:只需使用原始加载程序加载xlf文件:
{test:/\.xlf/,加载程序:'raw loader'},
@GOB raw loader是一个Web包加载程序,允许您将文件作为字符串导入。那么?如果我在应用程序加载中获得设置,并且它包含我应该使用的语言,该怎么办?我需要的方法来应用它,而无需重新加载页面(不想得到设置两次)。
let locale = localStorage.getItem('localeId');