如何在 SAPUI5 的控制器中使用内部化 i18n?

问题描述 投票:0回答:2

有人可以解释一下如何在控制器的

i18n
方法中使用
setValueStateText
文本吗?

oTP.setValueStateText("{i18n>co_Maximal_60_h}");

对话框中的错误消息仅显示

{i18n>co_Maximal_60_h}
而不是真实文本。

internationalization sapui5
2个回答
5
投票

无法通过setter方法设置绑定字符串。 这里您有 2 个选择:

  1. 在视图中设置绑定权限(使用相同的字符串,但在 XML 中)
  2. 利用ResourceBundle

    var oResourceBundle = this.getOwnerComponent().getModel("i18n").getResourceBundle();
    
    var sTxt = oResourceBundle.getText("co_Maximal_60_h");
    
    oTP.setValueStateText(sTxt);
    

我建议向您的 BaseController 添加一个名为“i18n”的可重用方法,因此无论何时您需要它,都可以调用“this.i18n(“i18n_key”)'。


5
投票

可以通过以下方式在控制器中访问资源包:

const oResourceBundle = this.getView().getModel("i18n").getResourceBundle();

oTP.setValueStateText(oResourceBundle.getText("co_Maximal_60_h"));
© www.soinside.com 2019 - 2024. All rights reserved.