【问题标题】:ngx-translate with values in database?ngx-translate 数据库中的值?
【发布时间】:2019-03-26 21:40:22
【问题描述】:

我正在使用 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”文档,并将文本与数据库中的文本匹配?

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

【问题讨论】:

    标签: angular typescript translate ngx-translate


    【解决方案1】:

    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

    【讨论】:

    • 非常感谢,这就是我要找的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2019-05-27
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多