Интернационализация-оф-динамических-данных-в-угловой - PullRequest
0 голосов
/ 04 мая 2018

Я использую интернационализацию [i18n] в своем угловом проекте. Для статического контента это работает правильно. Но с динамическим контентом это не работает.

Мой код выглядит следующим образом:

Статическая:

     <div>{{ 'ADD ENTRY' | translate }} </div>

Динамический:

    <div>{{ status | translate }} </div>

Я получаю код состояния от внутреннего API, который я сопоставляю с переменной status в файле ts. В моем случае я получаю код состояния 404 . Поэтому я перенастроил этот 404 в i18n файл конфигурации. Но это не работает, если я пытаюсь перевести эту переменную. Но вместо передачи этой переменной состояния, если я непосредственно передаю '404' как строку, то интернационализация работает должным образом.

Мой код выглядит следующим образом:

    <div class="error" *ngIf="status">**{{ '404' | translate }} **</div>

для этой интернационализации работает.

Но мне нужно интернационализировать статус переменной, но возникает проблема.

Мой код выглядит следующим образом:

В HTML:

  <div class="error" *ngIf="status">{{ status | translate }} </div>

В тс:

    status: string;
    this.status = error.status;

я тоже пробовал как:

        <div class="error" *ngIf="status">{{"'"+{{status}}+"'"}} | translate}}</div>

Но это не работает.

1 Ответ

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

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

Первый набор TranslateService:

import { TranslateService } from '@ngx-translate/core';

constructor( private translateService: TranslateService ) { }

и затем в месте, где вы получите текст (который в этом случае, я полагаю, хранится в error.status), сделайте следующее:

this.status = this.translateService.instant(error.status)

и не используйте | translate в html, просто поместите туда status.

...