如何扩展翻译?

时间:2018-07-10 10:12:40

标签: sapui5

我扩展了标准的fiori应用程序,我也想扩展 i18n
扩展应用程序的结构如下所示:

enter image description here

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}"/>  

我在做什么错了?

1 个答案:

答案 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");

    }

还请检查示例 https://github.com/fabiopagoti/ui5-extension