ngx-translate 数据库中的值?

ngx-translate with values in database?

我正在使用 ngx-translate 模块制作一个 angular2 应用程序

该服务使用 .json 文档来查找翻译

首先...我注意到本地 json 文档路径是“/src/assets/i18n/”,如下图所示:

因此,翻译服务使用默认语言翻译不同的文本

我的 app.component.ts 是这样工作的:

import { Component, OnInit, AfterContentInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';


@Component({
  selector: 'app-root',
  template: '<router-outlet></router-outlet>'
})
export class AppComponent implements OnInit {
  constructor(translate: TranslateService) {
    translate.addLangs(['es']);
    translate.setDefaultLang('es');

    const browserLang: string = translate.getBrowserLang();
    translate.use(browserLang.match(/en|es/) ? browserLang : 'es');
  }

  ngOnInit() {
  }

}

因此服务使用 "en.json"、"es.json" 和 "fr.json" 来匹配翻译。

所以我的问题是

如何避开 "json" 文档并将文本与数据库中的文本进行匹配?

因此客户端无需重建即可获得新的翻译更新,只需添加到数据库并自动翻译而无需重建

Ngx-translate 有一个方法 setTranslation 接受 Lang 键和一个 JSON 对象 - 你可以从任何地方加载你的 JSON 对象(例如:数据库)并使用这个

setTranslation(lang: string, translations: Object, shouldMerge: boolean = false): Manually sets an object of translations for a given language, set shouldMerge to true if you want to append the translations instead of replacing them

文档:https://github.com/ngx-translate/core/blob/master/README.md#api