[英]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.