【发布时间】:2021-01-09 00:06:57
【问题描述】:
我正在使用 Electron 10 和 Angular 10,也使用 ngx-translate。我想在用户在下拉菜单中切换语言后更新当前视图/页面的翻译。
在开发过程中,我当然会使用 Angular 及其 HTTP 服务器,这就是我使用 HttpLoaderFactory 的原因。但对于生产版本,我使用自定义 translateFactory,它通过 TranslateUniversalLoader 加载 JSON 文件。这样可以吗?
无论是在开发版本还是生产版本中,我都可以在不重新启动应用程序的情况下更新字符串。我有一个下拉菜单,更改时我只需调用this.translate.use(lang)。视图应该重新加载吗?这里的预期行为是什么?
我注册模块如下:
export class TranslateUniversalLoader implements TranslateLoader {
constructor() {
}
public getTranslation(lang: string): Observable<any> {
return of(TRANSLATIONS[lang]);
}
}
export function translateFactory() {
return new TranslateUniversalLoader();
}
}
...
@NgModule({
declarations: [AppComponent],
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: isProductionBuild() ? translateFactory : HttpLoaderFactory,
deps: [HttpClient]
},
isolate : false
})
【问题讨论】:
标签: angular electron ngx-translate