[英]Dynamic Internationalization in Angular 5 (Date and currency)
我在应用程序中遇到了日期和货币插补的问题。 我试图找出一些解决方法,但我无法解决我的问题。 我的应用程序是这样工作的:它使用美国语言环境进行了初始化。 用户登录数据到达后,其中一个字段是用户区域。 这是本地设置的。 为此,我这样做:
// app.module
providers: [
...
{
provide: LOCALE_ID,
deps: [LocaleService],
useFactory: localeProviderFactory
}
...]
export function localeProviderFactory(provider: LocaleService) {
return provider.getCurrent();
}
//my service
export class LocaleService {
locale: BehaviorSubject<any>;
constructor() {
this.locale = new BehaviorSubject<GroupModel> (this.getGroupFromLocalStorage());
}
private getGroupFromLocalStorage(): GroupModel {
let parse = JSON.parse(localStorage.getItem('currentUser'));
return parse ? parse.Region : 'en-US';
}
setLocale(val) {
this.locale.next(val);
}
getCurrent() {
return this.locale.getValue();
}
}
因此,在用户登录后,我在LocaleService
调用setLocale()
在LocaleService
传递新的用户区域。
问题是我不知道将设置哪个区域,也不想将所有语言环境导入应用程序。 Angular 5需要在应用启动之前导入所有语言环境。 带有:
import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';
registerLocaleData(localeFr);
是否可以在运行时动态导入/加载和注册语言环境? 还是有一些解决方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.