Ngx-перевод с угловым универсальным

Я только что обновился с ng2-translate (v. 5.x.x) чтобы ngx-translate (v. 6.x.x) в моем Angular 2 Universal App.

До обновления я использовал этот загрузчик ( находится здесь):

class TranslateUniversalLoader implements TranslateLoader {
  public getTranslation(lang: string): Observable<any> {
    return Observable.create(observer => {
      observer.next(JSON.parse(fs.readFileSync(`src/i18n/${lang}.json`, 'utf8')));
      observer.complete();
    });
  }
}

Что я использовал вот так:

@NgModule({
  bootstrap: [AppComponent],
  declarations: [ AppComponent ],
  imports: [
    FormsModule,
    CoreModule,
    ViewsModule,
    TranslateModule.forRoot({
      provide: TranslateLoader,
      useClass: TranslateUniversalLoader,
    }),
    UniversalModule
  ]
})

После обновления до ngx-translateоднако, я получаю эту ошибку в терминальной консоли (таким образом, ошибка на стороне сервера):

Module build failed: Error: /src/app/app.node.module.ts (65,7): 
Argument of type '{ provide: typeof TranslateLoader; useClass: typeof TranslateUniversalLoader; }' is not assignable to parameter of type 'TranslateModuleConfig'.

Так что любой знает, как настроить пользовательский загрузчик для поддержки на стороне сервера с Angular Universal с ngx-translate?

1 ответ

Решение

Решение оказалось намного проще, чем ожидалось, и подробно описано в руководстве по миграции.

В 6.x.x то, что изменилось, что нарушило код, - это ожидаемое значение, переданное forRoot(),

Теперь нам нужно передать загрузчик как объект loader ключ, вот так:

TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useClass: TranslateUniversalLoader,
  }
}),
Другие вопросы по тегам