我正在开发一个Angular2应用程序,它有多种语言。根据我的angular2模板请求发送的cookie,我从服务器获得不同的语言模板。问题是当我在Angular中更改语言时,它不会重新加载@Component HTML-s,这意味着我没有获得翻译的页面模板。
实施例
在EN工作,我有一个模板
<p>Hello: @{{ user.name }}</p>
当我在Angular中更改语言时,我必须重新加载组件HTML以获取(例如)德语翻译模板。
<p>Guten tag: @{{ user.name }}</p>
对于我必须使用哪个类来执行此操作的任何建议?我认为它必须比刷新整个页面更容易吗?
我目前正在做一个
location.reload();
更改语言后,但我无法找到更好的解决方案。
答案 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}}
个文件夹中创建包含所需翻译的本地化文件(例如i18n
,en.json
等)。
请查看此Plunker以获取一个简单的工作示例。