Angular2本地化重新加载组件HTML

时间:2016-08-21 12:57:08

标签: angular angular2-components

我正在开发一个Angular2应用程序,它有多种语言。根据我的angular2模板请求发送的cookie,我从服务器获得不同的语言模板。问题是当我在Angular中更改语言时,它不会重新加载@Component HTML-s,这意味着我没有获得翻译的页面模板。

实施例

在EN工作,我有一个模板

<p>Hello: @{{ user.name }}</p>

当我在Angular中更改语言时,我必须重新加载组件HTML以获取(例如)德语翻译模板。

<p>Guten tag: @{{ user.name }}</p>

对于我必须使用哪个类来执行此操作的任何建议?我认为它必须比刷新整个页面更容易吗?

我目前正在做一个

location.reload();

更改语言后,但我无法找到更好的解决方案。

1 个答案:

答案 0 :(得分:1)

Angular2计划在未来默认采用本地化。但是,就目前而言,为什么不使用ng2-translate翻译内容?

它是easy to set up,您可以使用管道轻松翻译术语:

Locale l = Locale.GERMANY; // Or Locale.CANADA_FRENCH, etc. DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.SHORT ).withLocale( l ); String output = zdt.format( f );

然后,您只需在{{ 'HELLO' | translate}}个文件夹中创建包含所需翻译的本地化文件(例如i18nen.json等)。

请查看此Plunker以获取一个简单的工作示例。