Angular 2+ Dynamic UI Text - PullRequest
       22

Angular 2+ Dynamic UI Text

0 голосов
/ 17 мая 2018

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

Не уверен, что что-то там уже реализовано или есть лучший способ добиться этого. У меня есть ng2-translate, но он не предназначен для изменяемого текста через экран администратора.

Спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Весь текст может отображаться с помощью привязки шаблона, например, {{ myLabel }}.myLabel в свою очередь может быть назначено на основании запроса к серверу, который принимает языковой параметр, или вы можете иметь локально сохраненные значения, которые используются, если выбран определенный языковой параметр.Опция сервера является более управляемой IMO.

async setText(languageId: number) {
  this.text = await this.http.get('yourUrl', {
    params: { languageId: languageId.toString()} }).toPromise();
}

Текст может быть объектом со всем вашим текстом, например

"text": [
 "notifications": ["warningNotification": "whatever", ... 
] 

Вы можете отобразить их по всему шаблону:

<div id="warningDiv">{{ text?.notifications?.warning }}</div>

И следуйте по одному и тому же шаблону повсюду, с различными объектами text json, доставляемыми в зависимости от языка.

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

...