我有一个代码,用于检查来自服务器的响应,并根据收到的信息显示消息框。我有两种语言的这些消息(用户在登录期间选择一种语言)。 这是一个例子:
if(sResponse == 'IDfail'){
sap.m.MessageBox.alert
("{i18nResourceModel>idnotnine}",
{icon: sap.m.MessageBox.Icon.ERROR,
title: "{i18nResourceModel>error}"}
);
}
这是i18n模型声明(当然在我使用模型之前声明):
var oResourceModel = new sap.ui.model.resource.ResourceModel
({bundleUrl: "i18n/i18n.properties", bundleLocale: "en"});
sap.ui.getCore().setModel(oResourceModel, "i18nResourceModel");
我有2个.properties
个文件:i18n.properties
(英文)和i18n_iw.properties
(希伯来文)。
奇怪的是,消息框的title
被正确翻译,但是我看到了文本:“i18nResourceModel> idnotnine”而不是消息本身。
以前工作得很好,我无法弄清楚发生了什么。
可能导致此问题的原因以及如何解决?
谢谢。
答案 0 :(得分:3)
数据绑定通常不在像sap.m.MessageBox.alert()
这样的函数调用中工作。您必须手动获取文本,如:
var resourceModel = sap.ui.getCore().getModel("i18nResourceModel");
var alertText = resourceModel.getProperty("idnotnine");
var alertTitle = resourceModel.getProperty("error");
sap.m.MessageBox.alert(alertText, {
icon: sap.m.MessageBox.Icon.ERROR,
title: alertTitle
}
);
此外,您可以查看有关如何使用ResourceBundle here的最新指南。