Невозможно перевести текст в компоненты, которые есть в функциональных модулях - PullRequest
1 голос
/ 07 мая 2019

У меня есть компонент в общем модуле, где тексты должны быть локализованы с использованием NGX-TRANSLATE. Но я думаю, что компонент в общем модуле не получает файл JSON, который был загружен в app.module.ts, и я получаю следующую ошибку. Msgstr "Невозможно прочитать свойство 'Desc' из неопределенного". Также я заметил, что translate pipe и TranslateService работают в shared.component.ts. Дайте мне знать, если мне не хватает некоторых зависимостей.

https://stackblitz.com/edit/angular-lmawme

app.module.ts

export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

app.component.ts

  constructor(private translate: TranslateService){
    translate.addLangs(['en','fr']);
    translate.setDefaultLang('fr');
    translate.use('fr');
    console.log(translate.getLangs());
  } 

shared.component.ts(template)
<div>Shared Component :  {{Shared.Desc|translate}}</div>

1 Ответ

1 голос
/ 07 мая 2019

Просто измените свой шаблон на <div>Shared Component : {{'Shared.Desc'|translate}}</div>.Причина: все ваши строки (здесь ключи) должны быть заключены в одинарные или двойные кавычки.

Предложение. Постарайтесь не включать SharedModule в AppModule.Потому что это исключает идею обмена.

...