我正在根据这篇文章翻译我的角度应用程序 http://www.dzurico.com/i18n-with-angular-6/
im还使用primeng组件库,并且im根据应用程序流给出自定义错误消息 例如
if (duplicateSerial) {
this.msgs.push({
severity: 'error', summary: 'Serial already selected'
});
setTimeout(() => this.msgs = [], 2000);
return;
}
在TS代码“已选择序列”中转换文字的方法是什么
答案 0 :(得分:1)
这完全取决于您喜欢哪种翻译框架。例如,使用ngx-translate,翻译将如下所示。
您可能在某个地方有一个包含i18n-json-files的文件夹,或者直接从数据库中获取键值对。
如果是文件,则通过这样的位置字符串来命名
en.json, en-GB.json, en-US.json, de.json ...
内容是由键值对组成的普通json对象
{
"wrong_password": "Wrong Password!",
"serial_already_selected": "Serial Already Selected",
"no_user_logged_in": "No User Logged In"
}
App.Module
将TranslateModule导入AppModule以及需要翻译的其他任何模块。
import {TranslateService} from '@ngx-translate/core';
组件
将TranslateService导入需要翻译的任何组件中
import {TranslateService} from '@ngx-translate/core';
constructor(translate: TranslateService) {}
如果要在组件的ts文件中使用它,请按以下方式进行操作:
if (duplicateSerial) {
this.msgs.push({
severity: 'error', summary: this.translate.instant('serial_already_selected')
});
setTimeout(() => this.msgs = [], 2000);
return;
}
答案 1 :(得分:0)
private showInformationMessage() {
this.messageService.add({
severity: SeverityMessage.INFO,
summary: (<HTMLInputElement>
(document.getElementById('informationMessageSupplierVendorID'))).value,
detail: ''
});
}
然后在任何html代码上
<input type="hidden"
value="text to translate"
i18n-value="text to translate|Label for information text to translate@@informationMessageToSupplierVendorID"
id="informationMessageSupplierVendorID"/>