在下面的示例中,静态加载了区域设置信息
import { NgModule, LOCALE_ID } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { load } from '@telerik/kendo-intl';
load(
require(`json!cldr-data/main/bg/numbers.json`),
require(`json!cldr-data/main/bg/currencies.json`),
require(`json!cldr-data/main/bg/ca-gregorian.json`),
require(`json!cldr-data/main/bg/timeZoneNames.json`)
);
@NgModule({
bootstrap: [AppComponent],
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: LOCALE_ID, useValue: 'bg-BG' }]
})
export class AppModule {
}
我知道如何动态加载cldr数据。但是CldrIntlService
需要一个"静态" locale
要注射。由于用户可以随时更改我的应用中的locale
,因此我希望在获取新的CLDR数据后使用新的CldrIntlService
更新locale
服务。如何实现这一目标?
答案 0 :(得分:1)
CldrIntlService
不需要静态区域设置,但Angular需要静态区域设置。你可以在这里阅读更多相关信息:
https://angular.io/docs/ts/latest/cookbook/i18n.html
至于问题 - 在目前阶段,Angular建议使用路由器来处理不同的本地化方案。因此,在您的情况下,您可以使用路由器注入不同的服务实例并导航到该页面。