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");
Это не идеально, но работает хорошо.