Невозможно изменить значения перевода существующего объекта перевода ngx translate - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь изменить значение свойства объекта внутри 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 Ответ

0 голосов
/ 24 января 2019

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

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

Должно быть:

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

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

...