Sapui5 如何使用;formatMessage";XML视图中具有i18n模型和参数的模块

Sapui5 如何使用;formatMessage";XML视图中具有i18n模型和参数的模块,sapui5,Sapui5,在UI5演示套件中,(仍然)提到了以下内容: 为了安全起见,我们必须使用与控制器中类似的机制来使用资源包中的字符串并替换其中的一部分。这可以通过jQuery.sap.formatMessage格式化程序来完成 它可用于XML视图中带有占位符的可翻译文本,例如: 但是,jQuery.sap.formatMessage从1.58开始贬值,如果我使用建议的备选方案sap.base.strings.formatMessage,将引发以下错误: 找不到格式化程序函数sap.base.strings.f

在UI5演示套件中,(仍然)提到了以下内容:

为了安全起见,我们必须使用与控制器中类似的机制来使用资源包中的字符串并替换其中的一部分。这可以通过
jQuery.sap.formatMessage
格式化程序来完成

它可用于XML视图中带有占位符的可翻译文本,例如:


但是,
jQuery.sap.formatMessage
从1.58开始贬值,如果我使用建议的备选方案
sap.base.strings.formatMessage
,将引发以下错误:

找不到格式化程序函数sap.base.strings.formatMessage

如何在XML中使用新的
formatMessage
模块?

UI5 1.69+ 通过
提交:
,现在可以:


这样,我们就可以避免对中间控制器的依赖,并独立地使用新模块


UI5 1.68及以下(先前的答案) UI5目前不允许获取模块并将其分配给格式化程序。1此外,新功能模块从未以名称
sap.base.strings.formatMessage
导出

替代方法之一是指向控制器中指定的方法,而该方法指向所需的
formatMessage
模块


sap.ui.define([
“sap/ui/core/mvc/Controller”,
“sap/base/strings/formatMessage”,
// ...
],函数(控制器,formatMessage/*,…*/){
“严格使用”;
返回控制器。扩展(“…”{
formatMessage:formatMessage,
// ...
});
})
我可以想象UI5在以后的版本中支持在绑定定义中获取和分配模块,但在编写本文时这是不可能的



1相关增强请求: