我有一个带有 ngx-translate 的 Angular 5 应用程序,我在我的应用程序模块和组件中使用了类似的东西:
// app.component
// ...
constructor (private translateService: TranslateService) {
translate.setDefaultLang('en-us');
translate.use('en-us');
}
// app.module
// ...
function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({
// ...
imports: [
// ...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
}),
// ...
当我使用ng serve
我的应用程序时,我的翻译根本没有加载,网络选项卡中也没有任何活动。当 I 时ng serve -e prod
,翻译被加载。
编辑:在 prod 或 dev 环境中服务的区别:
json
s 未加载。在prod
我看到请求i18n/de.json
请求。在dev
,没有要求。- 显然,翻译不是在 dev 中完成的。
浏览器控制台中没有任何错误。
我错过了什么?
Angular 5.1、ng-cli 1.6、ngx-translate 9.0.1。