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变量”
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');