我扩展了标准的fiori应用程序,我也想扩展 i18n 。
扩展应用程序的结构如下所示:
在 Component.js 文件中,我注意到了扩展名:
this.i2d.eam.pmnotification.create.s1.Component.extend("i2d.eam.pmnotification.create.s1.ZEAM_NTF_CRES1_EXT.Component", {
metadata: {
manifest: "json",
config: {
"sap.ca.i18Nconfigs": {
bundleName: "i2d.eam.pmnotification.create.s1.ZEAM_NTF_CRES1_EXT.i18n.i18n"
}
}
}
});
,但文本仍然无法翻译。
i18n.properties
文件的内容:
ext.createNotification=Create notification
ext.createOrder=Create order
和使用翻译的按钮:
<Button press="onCreateWithOrder" text="{i18n>ext.createOrder}" />
<Button press="onSave" text="{i18n>ext.createNotification}"/>
我在做什么错了?
答案 0 :(得分:1)
在使用旧式“脚手架”命名空间(sap.ca.scfld)转换应用程序时,我仅成功使用了“ sap.ca.i18Nconfigs”。
我敢打赌,您正在扩展的应用程序不是基于它的。
然后,尝试将以下调用添加到Component.js文件中
init: function() {
UIComponent.prototype.init.apply(this, arguments);
var oModel = new sap.ui.model.resource.ResourceModel({
bundleUrl: "../pathToYourParentApp/i18n/i18n.properties"
});
oModel.enhance({
bundleUrl: "i18n/i18n.properties"
});
this.setModel(oModel, "i18n");
sap.ui.getCore().setModel(oModel, "i18n");
}