UI5消息框自定义按钮

时间:2016-03-11 09:50:16

标签: sapui5

我需要帮助更新消息框上的按钮(确定)文本我正在使用库sap.ca.ui.message

sap.ca.ui.message.showMessageBox({
    type: sap.ca.ui.message.Type.ERROR,
    message: "Erro Text Message",
}, function(){});

如何访问消息框中的按钮。基本上我从翻译的角度来看。在此消息框中,我可以翻译标题和消息文本,但我无法翻译确定按钮文本。

3 个答案:

答案 0 :(得分:1)

正如我在评论中所说,sap.ca.ui.message自1.28以来已被弃用。建议使用sap.m.MessageBox

但是,sap.m.MessageBox目前不允许自定义操作(按钮)和图标(标题)。

有一组预定义的受支持操作(请参阅sap.m.MessageBox.Action)和标题(请参阅sap.m.MessageBox.Icon)。这些操作已经翻译过,您可以在此处查看爱沙尼亚语翻译(查找以MSGBOX_开头的字符串):https://github.com/SAP/openui5/blob/master/src/sap.m/src/sap/m/messagebundle_et.properties

如果您认为翻译错误或有更好的翻译,您可以使用自己的翻译制作新的拉取请求,或者只需在此处打开帐单:https://github.com/SAP/openui5/issues

答案 1 :(得分:0)

实际上,现在有一个新的解决方案可用,您可以通过将关闭按钮重命名为其他按钮来创建自定义操作按钮。 (在此示例中为“管理产品” )。

这是UI5消息框示例的摘录。

MessageBox.error( "Product A does not exist.",
    {
        actions: ["Manage Products", sap.m.MessageBox.Action.CLOSE],
        styleClass: bCompact ? "sapUiSizeCompact" : "",
        onClose: function(sAction) {
            MessageToast.show("Action selected: " + sAction);
        }
    }
);      

答案 2 :(得分:0)

翻译文本在资源包中,您可以相应地更改值。像这样

sap.ui.define(["sap/m/Button", "sap/m/MessageBox"], function(Button, MessageBox) {
  var rb = sap.ui.getCore().getLibraryResourceBundle("sap.m");
  rb.aPropertyFiles[0].mProperties["MSGBOX_YES"] = "OOO";
  rb.aPropertyFiles[0].mProperties["MSGBOX_CANCEL"] = "Katkesta";

  var oButton = new Button({
    text: "Press",
    press: function() {

      MessageBox.show("This message should appear in the message box.", {
        icon: MessageBox.Icon.INFORMATION,
        title: "My message box title",
        actions: [MessageBox.Action.YES, MessageBox.Action.CANCEL],
        onClose: function(oAction) {
        }
      });
    }
  });
  oButton.placeAt("content");
});

https://jsbin.com/qumiweg/edit?js,output