我想使用ngx-translate
和| translate
管道翻译我的 Angular HTML 模板中的一些值。目前我的代码如下所示:
<div>
{{equipment.type.name}}
</div>
equipment
来自 component.ts 的对象在哪里。所以只显示设备类型的名称。
我想要实现的是翻译这些类型的设备,所以我在我的 i18n json 文件中添加了一些翻译:
"EQUIPMENT-TYPE": {
"chair": "Chair",
"table": "Table",
}
我修改了我的 HTML 模板如下:
<div>
{{'EQUIPMENT-TYPE' + equipment.type.name | translate}}
</div>
它确实有效,但只有在 i18n json 文件中添加了翻译时才有效。
我的问题是:是否可以检查 json 文件中是否存在特定的翻译键,如果不存在,则仅显示设备类型的名称?
下面的代码不起作用,它总是尝试翻译密钥,即使它不存在:
<div>
{{ ('EQUIPMENT-TYPE' + equipment.type.name) ? ('EQUIPMENT-TYPE' + equipment.type.name | translate) : equipment.type.name }}
</div>
在 ngx-translate 中,如果翻译不存在,键的字符串将直接返回,所以试试这个:
{{ ('EQUIPMENT-TYPE' + equipment.type.name | translate) !== 'EQUIPMENT-TYPE' + equipment.type.name ? ('EQUIPMENT-TYPE' + equipment.type.name | translate) : equipment.type.name }}
如果翻译不存在, translateService 将直接返回字符串,所以
this.translateService.instant('stringToBeTranslated') is equal to stringToBeTranslated// it does not exist
但是当你将它添加到你的 json 中时
'stringToBeTranslated': "test"
this.translateService.instant('stringToBeTranslated) is equal to test
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句