我正在研究如何在运行时更改Angular语言环境,并找到了这个帖子:How to set locale in DatePipe in Angular 2? 是否仍然无法在运行时更改语言环境?我有一个应用程序,它具有多个管道,用于根据区域设置格式化数字,日期和语言,但是为每个区域设置实现许多自定义管道 - 而不是在运行时能够更改它 - 看起来很荒谬。 你会用什么解决方案?
答案 0 :(得分:7)
我打赌你正在搜索这个,因为今天你正在升级v-html="sysmessage.message"
到@angular/material
而DatePicker现在使用beta.10
,不是吗?我也在寻找替代方案而且没有运气。
Angular 4 i18n方法基于编译器,为不同语言生成不同的包,因此该架构似乎不支持LOCALE_ID
解决方案。 Angular 6编译器正在开展工作以支持runtime
翻译更改。
目前,我喜欢runtime
方法,他们似乎订阅了lang更改并更新了使用Directive注册的DOM节点,并且我打算根据他们的{{3来构建我自己的DateFormat管道。但是关于使用ngx-translate
的服务和组件,我认为没有机会在运行时改变它们的行为。可能有新的导出资源用于扩展和自定义(我确实阅读了TranslateDirective中的内容),因此我们可能需要深入研究我们想要翻译的组件。
如果采用LOCALE_ID
方法,让我们在github上共享内容来构建新的管道;)