返回

= "SAP UI5 Library Resource Bundle 的设计原理

前端

SAP UI5 Library Resource Bundle 的设计原理

Offer 驾到,掘友接招! 我正在参与2022春招打卡活动,点击查看活动详情。

按照 Jerry 这篇文章介绍的代码,运行之后,给类型为 sap.ui.model.type.Currency 的字段设置值时,会报如下错误:

Failed to parse the requested currency code (USD) in value

原因是 sap.ui.model.type.Currency 是一个抽象类,不能直接使用,需要使用其子类来实例化对象。在 SAP UI5 库中,提供了两种子类:

  • sap.ui.model.type.CurrencyFormat:用于格式化货币值。
  • sap.ui.model.type.CurrencyParse:用于解析货币值。

根据 Jerry 的要求,我们需要使用 sap.ui.model.type.CurrencyParse 来解析货币值。因此,代码应该改为:

var oType = new sap.ui.model.type.CurrencyParse();
var oValue = oType.parseValue("100 USD", "string");

这样就可以正确地解析货币值了。

资源束的设计原理

在 SAP UI5 库中,资源束是一种用于存储文本和翻译的机制。资源束可以分为两种类型:

  • 捆绑的资源束:捆绑的资源束是与 UI 库一起发布的资源束。它们通常包含一些基本文本,如“确定”、“取消”等。
  • 自定义资源束:自定义资源束是应用程序开发人员创建的资源束。它们通常包含一些特定于应用程序的文本,如应用程序名称、菜单项等。

资源束通常使用 JSON 格式存储文本和翻译。JSON 格式是一种轻量级的、基于文本的数据交换格式。它易于解析和生成,并且可以存储各种数据类型。

要使用资源束,应用程序开发人员需要首先加载资源束。加载资源束的代码如下:

var oBundle = new sap.ui.core.resource.ResourceModel({
  bundleName: "my.app.bundle"
});

加载资源束后,应用程序开发人员就可以通过资源束的 getText 方法来获取文本。获取文本的代码如下:

var sText = oBundle.getText("my.text.key");

资源束可以帮助应用程序开发人员将文本与应用程序代码分离。这使得应用程序更容易本地化,因为应用程序开发人员只需要更新资源束中的文本,而不需要修改应用程序代码。

设计原理

资源束的设计原理如下:

  • 资源束是独立于应用程序代码的:资源束与应用程序代码分离,这使得应用程序更容易本地化。
  • 资源束可以是捆绑的或自定义的:捆绑的资源束是与 UI 库一起发布的资源束,自定义资源束是应用程序开发人员创建的资源束。
  • 资源束通常使用 JSON 格式存储文本和翻译:JSON 格式是一种轻量级的、基于文本的数据交换格式,易于解析和生成,并且可以存储各种数据类型。
  • 应用程序开发人员可以通过资源束的 getText 方法来获取文本:应用程序开发人员可以通过资源束的 getText 方法来获取文本,这使得应用程序更容易本地化。

资源束是一种强大的机制,可以帮助应用程序开发人员将文本与应用程序代码分离,从而使应用程序更容易本地化。