如何使用ngx-translate更新当前语言?

问题描述

我使用的是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
    })

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)