【问题标题】:Changing locale in Angular at runtime?在运行时更改 Angular 中的语言环境?
【发布时间】:2017-08-30 14:19:29
【问题描述】:

我正在对在运行时更改 Angular 语言环境进行一些研究,并发现了这个线程:How to set locale in DatePipe in Angular 2?
是否仍然无法在运行时更改语言环境?我有一个应用程序,它具有多个管道来根据区域设置格式化数字、日期和语言,但是为每个区域设置实现了许多自定义管道——而不是能够在运行时更改它——这似乎很荒谬。
您打算采用什么解决方案?

【问题讨论】:

    标签: 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 上分享东西以构建新管道;)

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多