我正在使用一个输入字段组件,我可以使用表单将它嵌入到不同的父组件中。
在输入子组件中,我有一个 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>
问题是,在运行应用程序时,翻译发生在将键传递给子组件中的变量之前,因此没有对 key/id: 进行翻译@@LabelSecondName
。
因此,labelText 保留了原始语言。我没有翻译,而是得到一种随机生成的数字,并且由于XLF(2.0 版)文件中不存在这些数字作为键,因此文本/标签未翻译。
错误信息:
Missing translation for message "8901569964118207331"
这种行为是预期的,因为变量:labelTextKey
没有得到值:@@LabelSecondName
及时传递。
一直在寻找,但无法找到正确的解决方案。这个问题似乎更接近我的问题,但并不完全相同,也没有答案。