У меня есть приложение 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 }}
. Единственная версия приложения, которая будет продолжать работать, - итальянская.
Какой лучший способ решить эту проблему?