Я использую компонент поля ввода, который я могу встраивать в разные родительские компоненты с помощью форм.
В дочернем компоненте ввода у меня есть ключ перевода i18n в качестве переменной с использованием интерполяции, что мне бы хотелосьгенерировать динамически из родительского компонента на основе выбора клиента.
input.component.ts :
<div i18n="{{labelTextKey}}">{{labelText}}</div>
<div>
<input matInput [required]="required"
[name]="name"
[(ngModel)]="value"
[type]="type">
</div>
form.component.ts :
<app-input [labelText]="'Second name'"
[labelTextKey]="'@@LabelSecondName'"
[name]="'secondName'"
[ngModel] = "secondName"
[type] = "'text'"
</app-input>
Проблема заключается в том, что при запуске приложения перевод происходит до того, как ключ передается в переменную в дочернем компоненте, и, следовательно, нет перевода для ключа / id: @@LabelSecondName
.
Итак, labelText сохраняет исходный язык.Вместо перевода я получаю вид цифр, которые генерируются случайным образом, и поскольку эти цифры в качестве ключа не существуют в файле XLF (версия 2.0), текст / метка не переводятся.
Сообщение об ошибке: Missing translation for message "8901569964118207331"
Такое поведение ожидается, поскольку переменная: labelTextKey
не получает значение: @@LabelSecondName
передано правильнововремя.
Искал, но не смог найти правильного решения для этого.Этот вопрос , кажется, ближе к моему, но не совсем в том же случае, и ответа также нет.