Angular 7 интернационализация: оставить поле значения ввода одинаковым - PullRequest
0 голосов
/ 04 марта 2020

У меня есть приложение Angular 7, которое я перевожу с помощью ngx-translate. Все работает нормально, но у меня проблемы с сохранением согласованности одного и того же value в поле ввода. В основном все ожидаемые значения указаны на итальянском языке, но если кто-то меняет язык, все значения превращаются в английский sh. Вот пример:

Component.ts:

import { AvailableLanguages } from '@app/_models/lesson-languages';

export class CommunityComponent implements OnInit, AfterViewInit {
  ....
  availableLanguages = AvailableLanguages;
  ...

Component. html:

<mat-form-field class="filter-field">
    <mat-option *ngFor="let lang of availableLanguages" value="{{ lang }}">{{ lang | translate }}</mat-option>
</mat-form-field>

Как видно в строке value="{{ lang }}" значение , исходит из файла lesson-languages.ts, оригинальный файл следующий:

export const AvailableLanguages: string[] = [
  'Francese',
  'Italiano',
  'Inglese',
  'Spagnolo',
  'Tedesco'
];

Но чтобы иметь возможность переводить языки, мне пришлось поменять его на:

export const AvailableLanguages: string[] = [
  'Languages.Fr',
  'Languages.It',
  'Languages.En',
  'Langauges.Es',
  'Languages.De'
];

Понятно, что поле ввода value будет принимать неожиданные значения, например, не будет получено «Frenchse», а «Languages.Fr», если я не переведу значение {{ lang }}, или «French», если я переводю значение {{ lang | translate }}. Единственная версия приложения, которая будет продолжать работать, - итальянская.

Какой лучший способ решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...