Невозможно изменить значения перевода существующего объекта перевода ngx translate

Я пытаюсь изменить значение свойства объекта внутри JSON-файла перевода с помощью ngx translate, но значение не меняется, все так же.

Я хочу, чтобы, когда я получал значения от API для динамического обновления его для объекта перевода, я пытался использовать метод setTranslation() и метод set(), но оба не работают, когда я пытаюсь утешить значение после обновления, оно показывает Правильно, но внутри HTML это не так.

Вот мой файл TS:

getDict() {
    this.getDictionary.getDictionary('dictionary').subscribe(
      res => {
        console.log(res)
        console.log('ar');
        this.translateService.use('ar').subscribe(response => {
        let config = [];
        for (let i in res) {
        if(res[i].language == 'ar') {
        config[res[i].key] = res[i].value;
        console.log('this is obj ', config);
        this.translateService.get(config[res[i].key]).subscribe((result: 
        String) => {
          console.log('tr res ', result);
          console.log(this.translateService.get(res[i].key));
          this.translateService.set(config[res[i].key], 
          config[res[i].value], 'ar');
        });
       }
       }
     })
    this.translateService.getTranslation('ar').subscribe(res => {
      console.log('this is the language translation ', res);
    });
   }
 )
}

Мой HTML:

<div [translate]="'first_name'" [translateParams]="{value: 'world'}"></div>

Мой файл ar.json:

{
  "admin": {
       "first_name": "{{value}}"
           }
}

Обратите внимание, что я проверил свой модуль приложения, никаких проблем с ним, он может прочитать файл перевода без проблем, я также рассмотрел ответ API, хорошо работает без ошибок, и я могу вернуть данные из него.

Пожалуйста, помогите, и если вам нужна дополнительная информация, сообщите мне.

1 ответ

Прежде всего - у вас есть ошибка в этой строке:

<div [translate]="'first_name'" [translateParams]="{value: 'world'}"></div>

Так должно быть:

<div [translate]="'admin.first_name'" [translateParams]="{value: 'world'}"></div>

Но если честно, я не понимаю твою проблему. Вы можете написать пошагово, что вам нужно?

Другие вопросы по тегам