我是初学者,使用Angular 4.3和Prime NG开发使用JHipster构建的应用程序。
我的问题是我想在主要组件中使用我的翻译文件(json文件)。但只有字符串消息才有效......
我的代码如下所示:
import {Message} from 'primeng/components/common/api';
export class MyComp implements OnInit {
msgs: Message[] = [];
callError() {
this.msgs = [];
this.msgs.push({severity: 'error',
summary: 'Error',
detail: 'error.errorOccured' // doesn't find the translation file = displays 'error.errorOccured'
detail: 'An error occured, please contact your administrator.' // works
});
}
}
在所有其他ts文件中,我调用这样的翻译文件:'error.errorOccured'
。
我看到我在消息中推送json,但我不知道如何插入json转换而不是字符串。
我的Json文件:
{
"error": {
"errorOccured": "An error occured, please contact your administrator."
}
}
有没有人有想法?
答案 0 :(得分:2)
无法从组件ts文件访问JSON密钥,它是用于HTML文件中的jhiTranslate指令
使用PrimeNG文件上传时遇到了类似的问题。翻译上传标签很难。我的脏解决方案是使用JhiLanguageService
检查currentLang
,然后返回硬编码的句子。在我的情况下,它只发生在一个地方,所以很容易修改。如果需要在多个位置应用它,可以将它们包装到Utility类中。
constructor(private languageService: JhiLanguageService) {}
private getLabel(english, spanish){
if (this.languageService.currentLang === 'en') {
return english;
}
return spanish;
}
onChooseLabel() {
return this.getLabel('Choose', 'Escoger Archivo');
}
答案 1 :(得分:1)
我可以使用带有咆哮声的jhipster国际化
首先在shared-libs.module.ts中添加所需的模块
import { GrowlModule } from 'primeng/primeng';
...
@NgModule({
imports: [
...
GrowlModule
],
exports: [
...
GrowlModule
]
})
export class AppSharedLibsModule {}
然后在组件中使用TranslationService加载消息
myEntity-update.component.ts
import { Message } from 'primeng/api';
import {TranslateService} from '@ngx-translate/core';
...
export class MyEntityUpdateComponent implements OnInit {
...
msgs: Message[] = [];
constructor(
...
private translateService: TranslateService
) {}
ngOnInit() {
... this.translateService.get('myApp.myEntity.errors.summary').subscribe(summaryTranslated => {
this.msgs.push({severity: 'success', summary: summaryTranslated, detail: 'Via MessageService'});
});
}
}
例如,假设您在i18n文件夹中的json语言文件中进行了翻译,
src / main / webapp / i18n / en / myEntity.json
{
"myApp": {
"myEntity" : {
...
"errors": {
"summary": "Something went wrong, try again later."
},
...
}
}
}
另请参阅:primeng file upload angular i18n internationalization
jhipster版本:5.4.2,primeNG版本:6.1.4