Как использовать ngx-translate внутри компонента

Я использую ngx-translate на моем веб-сайте, единственная проблема в том, что я знаю, как использовать его внутри html-шаблона, он отлично работает, но как я могу вызвать ключ JSON внутри компонента?

Это то, что мне нужно, у меня есть

app.html

 <div>{{"home" | translate }}</div>

это работает нормально, но внутри компонента у меня есть что-то вроде этого

 this.Items = [
      { title: 'Home', component: BookAServicePage, icon: 'settings' }
    ];

Как я могу заменить этот ДОМ, чтобы прочитать форму json файл?

1 ответ

Я был в состоянии найти решение. Следует отметить, что мне пришлось использовать событие жизненного цикла DoCheck, чтобы метки уровня компонентов транслировались без обновления.

Вот как я это сделал.

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

@Component({
    selector: 'app-some',
    templateUrl: './some.component.html',
    styleUrls: ['./some.component.css']
})
export class SomeComponent implements DoCheck {

  headers = [];

  constructor(public translate: TranslateService){
  }

  ngDoCheck() {
    this.translate.get(['HEADER.PRIORITY', 'HEADER.STATE', 'HEADER.DATE_CREATED'])
    .subscribe(translations => {
        this.setHeaders(translations);
      });
  }

  setHeaders(translations) {
    this.headers = [
        {
            title: translations['HEADER.PRIORITY'],
            active: true
        },{
            title: translations['HEADER.STATE'],
            active: false
        },{
            title: translations['HEADER.DATE_CREATED'],
            active: false
        }];
  }
}
Другие вопросы по тегам