Angular 7 перевод i18n внутри сервиса, компонентный и без шаблона

Я пытаюсь перейти с ngx-translate на подход Angular i18n и хотел убедиться в некоторых моментах перед миграцией.

  1. Возможен ли перевод внутри сервиса и компонента без шаблона? В ngx-translate можно было использовать канал translate.
  2. Есть ли какой-либо подход, который angular представил для V7 или планирует внедрить в v8 для перевода внутри компонентов и уровня обслуживания?
  3. Возможно ли это в настоящее время только с помощью обходного пути, и нет способа сделать это с помощью angular? Если да, следует ли мне использовать угловой подход i18n ИЛИ лучше продолжить с пакетом ng-tranlate?

Заранее спасибо!


person Surya Bhargava    schedule 02.01.2019    source источник


Ответы (1)


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

Для тех, кто ищет возможное обходное решение для получения переводов внутри Angular 7-компонентов: я лично использую следующий обходной путь, который вы также можете найти вместе с некоторыми другими предложениями в проблема с gitlab:

Создавайте скрытые элементы в шаблоне

<span style="display: none;" #trans-foo i18n>foo</span>

Свяжите их, используя

@ViewChild('trans-foo') transFoo : ElementRef;

Затем получите переведенное значение

transFoo.nativeElement.textContent
person sevic    schedule 20.03.2019
comment
Это отличный способ сделать это. На самом деле это лучше, чем текст внутри компонента. Это более декларативно, и вы по-прежнему можете создавать приложения для конкретных языков во время сборки. - person Spock; 18.04.2019