【问题标题】:Changing locale in Angular at runtime?在运行时更改 Angular 中的语言环境?
【发布时间】:2017-08-30 14:19:29
【问题描述】:
【问题讨论】:
标签:
javascript
angular
internationalization
locale
【解决方案1】:
我敢打赌,您正在搜索这个,因为今天您将@angular/material 升级到beta.10,而DatePicker 现在使用LOCALE_ID,不是吗?我也在寻找替代方案,但没有运气。
Angular 4 i18n 方法基于编译器,为不同的语言生成不同的包,因此该架构似乎不支持runtime 解决方案。 Angular 6 编译器正在支持runtime 翻译更改。
目前,我喜欢 ngx-translate 方法,他们似乎订阅了语言更改并更新了使用指令注册的 DOM 节点,我计划基于他们的 TranslateDirective 构建我自己的 DateFormat 管道,但是关于使用LOCALE_ID 的服务和组件,我认为没有机会在运行时改变它们的行为。可能有用于扩展和自定义的新导出资源(我确实在changelog 中读过一些内容),因此我们可能需要深入了解我们要翻译的组件。
如果您采用ngx-translate 方法,让我们在 github 上分享东西以构建新管道;)