Angular 5 i18n - Возможность использовать строки перевода вне шаблона

В настоящее время я использую Angular 5.x и использую директиву i18n для перевода. У меня нет проблем с файлом.html или шаблоном, но я не смог найти способ сделать это в файле машинописи. Есть ли в любом случае строка перевода в файле машинописи?

Примечание: похоже, что встроенная в Angular i18n не поддерживает перевод строки в машинописи только в шаблоне.

1 ответ

Нет, это невозможно. Это будет возможно с Айви. Смотрите эту проблему Github.

Я решил это путем создания компонента перевода.

HTML:

<div style="display:none">
  <div id="translation_1" i18n>Text to be translated</div>
</div>

ТС (может быть инъекционным сервисом):

constructor(@Inject(DOCUMENT) private document)) {}

public getTranslation(id: string) {
    return this.document.getElementById(id);
}

Например, в вашем компоненте презентации вы можете сделать: translationService.getTranslation("translation_1");

Это не идеально, но работает хорошо.

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