Перевести текст в файл Ts - Angular Ngx Перевод - PullRequest
0 голосов
/ 19 марта 2020

Я хочу перевести текст, существующий в моем файле машинописного текста, поэтому каждый раз, когда я хочу изменить язык во время использования приложения, текст должен меняться (пример изменения языка с engli sh на fren sh). Я попробовал следующий код, но он не работает

this.translate.get('example').subscribe(res => { this.title = res.title }

Также я попробовал это, и он работал нормально, но я не хочу добавлять один и тот же код в разные компоненты каждый раз, когда я хочу перевести что-то в файл машинописного текста когда я перехожу с языка на другой

this.translate.onLangChange.subscribe(() => {
                this.translate.get('example').subscribe(res => { this.title = res.title }
        });

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Попробуйте построить значение заголовка следующим образом:

this.title$: Observable<string> = this.translate.onLangChange.pipe(
  switchMapTo(this.translate.get('example')),
  map((result: string) => result.title)
)

Затем используйте asyn c pipe в html вместо подписки в файле ts.

Если вам нужно переведите свою ценность программно. Вы должны слушать onLangChange каждый раз. Вы можете попытаться абстрагировать эту логику c в выделенном сервисе.

Мой совет - попытаться использовать конвейер перевода вместо того, чтобы пытаться установить значение программно.

0 голосов
/ 19 марта 2020

Вы должны поместить службу перевода в свой app.component и сделать там все переводы, чтобы вам не нужно было реплицировать где-либо еще

...