ngx-translate загрузить переводы из нескольких источников - PullRequest
0 голосов
/ 03 апреля 2020

Мое приложение имеет модули, загруженные в виде библиотек, мы используем ngx-translate, я хочу, чтобы для одного модуля переводы загружались из API, для которого языковой стандарт отправляется как параметр. Остальные переводы других модулей происходят из папки / assests.

Я вижу, что путь по умолчанию может быть переопределен на

export function HttpLoaderFactory(http: HttpClient) {
    return new TranslateHttpLoader(http, "/public/lang-files/", "-lang.json");
} 

Но это предполагает перевод имени файла en-us. json, fr-ca. json, но то, что я want is lang. json независимо от языкового стандарта будет отправлено в качестве параметра в запрос. Есть ли способ загрузить в этот

1 Ответ

0 голосов
/ 07 апреля 2020

Я нашел выход

загрузчик

export class dyamicTranslateLoader implements TranslateLoader {
  constructor(private http: HttpClient, private prefix: string = 'en') {}
  public getTranslation(lang: string): any {
    return this.http.get('/assets/data/' + lang + '.json');
  }
}

export function dynamicTransLoaderFactory(http: HttpClient) {
  return new dyamicTranslateLoader(http, 'en-us');
}

TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: dynamicTransLoaderFactory,
        deps: [HttpClient]
      }
    })

И всякий раз, когда вы захотите сменить язык

this.translateSvc.use('fr-ca'); 
...