我正在做一些关于在运行时更改 Angular 区域设置的研究,并发现了这个线程:如何在 Angular 2 的 DatePipe 中设置区域设置? https://stackoverflow.com/questions/34904683/how-to-set-locale-in-datepipe-in-angular-2 .
仍然无法在运行时更改语言环境吗?我有一个应用程序,它具有多个管道来根据区域设置格式化数字、日期和语言,但是为每个区域设置实现许多自定义管道(而不是能够在运行时更改它)似乎很荒谬。
您想要什么解决方案?
我打赌您正在寻找这个,因为今天您要升级@angular/material
to beta.10
并且 DatePicker 现在使用LOCALE_ID
,不是吗?我也在寻找替代方案,但没有运气。
Angular 4 i18n 方法基于编译器,为不同语言生成不同的包,因此runtime
该架构似乎不支持解决方案。 Angular 6 编译器正在做一些工作来支持runtime
翻译更改。
暂时我喜欢ngx-translate
方法,他们似乎订阅了 lang 更改并更新了使用指令注册的 DOM 节点,并且我计划基于他们的构建我自己的 DateFormat 管道翻译指令 https://github.com/ngx-translate/core/blob/master/src/translate.directive.ts,但是关于使用的服务和组件LOCALE_ID
,我认为没有机会在运行时改变他们的行为。可能有新的导出资源用于扩展和定制(我确实在变更日志 https://github.com/angular/material2/blob/master/CHANGELOG.md),所以我们可能需要深入研究我们想要翻译的组件。
如果您采取ngx-translate
方法,让我们在 github 上分享一些东西来构建新的管道;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)