ngx-translate 与数据库中的值?

Ser*_*dez 3 translate typescript ngx-translate angular

我正在使用 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() {
  }

}
Run Code Online (Sandbox Code Playgroud)

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

所以我的问题是

如何避免“json”文档并将文本与数据库中的文本匹配?

所以客户端永远不必重建以获得新的翻译更新,只需添加到数据库并自动翻译而无需重建

Mic*_*ael 5

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