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

时间:2017-08-18 16:19:08

标签: internationalization sapui5

有人可以解释一下如何在控制器的setValueStateText方法中使用i18n文本吗?

Properties _dbProperties = Utils.readPropertiesFile();

对话框中的错误信息仅显示" {i18n> co_Maximal_60_h}"而不是真实的文本。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

    var oResourceBundle = this.getOwnerComponent().getModel("i18n").getResourceBundle();
    
    var sTxt = oResourceBundle.getText("co_Maximal_60_h");
    
    oTP.setValueStateText(sTxt);
    
  3. 我建议为BaseController添加一个名为“i18n”的可重用方法,所以无论何时需要,请调用'this.i18n(“i18n_key”)'。