如何根据 UI5 中的用户区域设置合并不同的数字表示?

问题描述

对于 SAPUI5 应用程序,我想根据用户在 SU01 中设置的设置(后端事务,在 SAP logon 中)显示数字数据。

例如,用户可以设置小数点分隔符

  1. 22,000.000(两万两千)→ 美国格式
  2. 22.000,000(两万两千)→ 德语格式

基于这些设置,UI5 应用程序应该知道使用了哪种十进制格式,并相应地格式化数据。

我正在尝试关注主题 Number Format,但这里的问题是,我需要手动提供区域。理想情况下,我想从用户设置中找到它。

var oLocale = new sap.ui.core.Locale("en-US");
var oFormatOptions = {
  showMeasure: true
};

解决方法

大多数时候,应用程序开发人员不必明确确定区域设置,因为 UI5 已经尝试根据主题 Identifying the Language Code / Locale 中提到的启发式识别应用程序的用户区域设置(请参阅“当前语言代码/区域设置”)。

给定 OData property "Freight": "22000"(输入 Edm.Decimal),以下 示例显示用户可以以他们的语言环境格式输入值应用程序不必手动确定语言环境:https://embed.plnkr.co/b32woxbQmdj5dTRu?show=view/Root.view.xml,preview:?sap-ui-xx-componentPreload=off

如果用户有例如“英语(美国)”移至浏览器设置顶部:
OData V2 Edm.Decimal in UI5 English

如果将“德语(德国)”移到顶部:
OData V2 Edm.Decimal in UI5 German