我正在尝试使用ngx translation更改转换JSON文件中的object属性的值,但该值没有改变,仍然相同。
我希望当我从API接收值以将其动态更新为翻译对象时,我尝试使用setTranslation()方法和set()方法,但是当我尝试在更新后控制台值时,两者均不起作用它正确显示,但在HTML中却没有。
这是我的TS文件:
getDict() {
this.getDictionary.getDictionary('dictionary').subscribe(
res => {
console.log(res)
console.log('ar');
this.translateService.use('ar').subscribe(response => {
let config = [];
for (let i in res) {
if(res[i].language == 'ar') {
config[res[i].key] = res[i].value;
console.log('this is obj ', config);
this.translateService.get(config[res[i].key]).subscribe((result:
String) => {
console.log('tr res ', result);
console.log(this.translateService.get(res[i].key));
this.translateService.set(config[res[i].key],
config[res[i].value], 'ar');
});
}
}
})
this.translateService.getTranslation('ar').subscribe(res => {
console.log('this is the language translation ', res);
});
}
)
}
我的HTML:
<div [translate]="'first_name'" [translateParams]="{value: 'world'}"></div>
我的ar.json文件:
{
"admin": {
"first_name": "{{value}}"
}
}
请注意,我检查了我的应用程序模块,它没有任何问题,它完全可以读取翻译文件,没有任何问题,我也检查了API响应,运行良好且没有错误,而且我可以从中返回数据。
请协助,如果您需要进一步的信息,请告诉我。
答案 0 :(得分:0)
首先-您在此行有一个错误:
<div [translate]="'first_name'" [translateParams]="{value: 'world'}"></div>
应该是:
<div [translate]="'admin.first_name'" [translateParams]="{value: 'world'}"></div>
但是,老实说,我不理解您的问题。您可以逐步编写所需的内容吗?