Angular6 - 使用 ngx-translate 使用 API 调用加载翻译到后端

jdo*_*010 6 frontend typescript ngx-translate angular angular6

我想在我的前端使用 ngx-translate 在应用程序加载时动态加载翻译。

我的后端以 JSON 格式返回响应,例如:

{
   "something: "something"
}
Run Code Online (Sandbox Code Playgroud)

我想在我的 TranslateLoader 上使用该输出而不是本地en.json文件。

有什么方法可以实现吗?

TL;DL:我想调用“ http://localhost:xxxx/api/translation/EN ”来获取翻译的 JSON 响应并将其加载TranslateHttpLoader

Ora*_*ram 6

您可以创建一个工厂:

export function httpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, "http://localhost:xxxx/api/translation/", "");
}
Run Code Online (Sandbox Code Playgroud)

并在您的 @NgModule 导入中使用它:

TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: httpLoaderFactory,
    deps: [HttpClient]
  }
}),
Run Code Online (Sandbox Code Playgroud)