angular: из файла перевода в i18n ngx-translate, как я могу получить все ключи?

#angular #ngx-translate

#angular #ngx-translate

Вопрос:

Я использую Angular 11, и мне нужно, как получить все ключи файла json выбранного языка, используя библиотеку ngx-translate-core.

Мне это нужно, потому что мне нужно отфильтровать ключи для текущей загруженной страницы.

Как я могу это сделать?

Ответ №1:

//1- введите ‘TranslateService’ в ‘конструктор’ компонента, который // вы хотите вызвать ключами

   constructor(private translate: TranslateService) {}
 

// 2- в ‘ngOnInit’

  this.translate.getTranslation(this.translate.currentLang)
.subscribe(transAsJson => {
  let allKeysAsString = Object.keys(transAsJson);
  console.log(allKeysAsString)
});
 

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

{ «first»: «valuee», «second»: «valuee», «FirstSub_first»: «valuee», «FirstSub_second»: «valuee» } }

результат должен быть таким

 ['first', 'second', 'FirstSub']