【描述】
在Android系统中,某些语言如阿拉伯语、波斯语、印地语、缅甸语等语言中的数字显示是使用该语言系统中的字符进行显示的,而不是使用通用的阿拉伯数字0-9显示,这样就导致时间、日期等显示比较奇怪,很多出货海外的客户要求将这些语言下的数字显示方式改为使用0-9数字显示。
【版本】Android 11
【源码路径】aosp/external/icu
【解决方法】
From 5716e765e3161f7c02721a2e186e2e6dfffa5b5f Mon Sep 17 00:00:00 2001
From: xxx <xxx@xxx.com>
Date: Tue, 18 Jun 2024 15:51:06 +0800
Subject: Update NumberingSystem default as "0123456780"
Change-Id: Ie1a7b77160d1f1392e26a9b5c694ddaa4b8bc768
---
diff --git a/icu/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java b/icu/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java
old mode 100644
new mode 100755
index 36ea97b..e9ca062
--- a/icu/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java
+++ b/icu/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java
@@ -98,7 +98,9 @@
NumberingSystem ns = new NumberingSystem();
ns.radix = radix_in;
ns.algorithmic = isAlgorithmic_in;
- ns.desc = desc_in;
+ //xxx modify
+ //ns.desc = desc_in;
+ ns.desc = "0123456789";
ns.name = name_in;
return ns;
}
@@ -295,7 +297,9 @@
* this numbering system.
*/
public String getDescription() {
- return desc;
+ //xxx modify
+ //return desc;
+ return "0123456789";
}
/**
diff --git a/icu/icu4c/source/i18n/numsys.cpp b/icu/icu4c/source/i18n/numsys.cpp
old mode 100644
new mode 100755
index ee530e8..59d552a
--- a/icu/icu4c/source/i18n/numsys.cpp
+++ b/icu/icu4c/source/i18n/numsys.cpp
@@ -102,7 +102,9 @@
}
ns->setRadix(radix_in);
- ns->setDesc(desc_in);
+ //xxx modify
+ //ns->setDesc(desc_in);
+ ns->setDesc(DEFAULT_DIGITS);
ns->setAlgorithmic(isAlgorithmic_in);
ns->setName(nullptr);
@@ -238,7 +240,9 @@
}
UnicodeString NumberingSystem::getDescription() const {
- return desc;
+ //xxx modify
+ //return desc;
+ return DEFAULT_DIGITS;
}
const char * NumberingSystem::getName() const {
diff --git a/icu/icu4j/main/classes/core/src/com/ibm/icu/text/NumberingSystem.java b/icu/icu4j/main/classes/core/src/com/ibm/icu/text/NumberingSystem.java
old mode 100644
new mode 100755
index 3adee1d3..35330c8
--- a/icu/icu4j/main/classes/core/src/com/ibm/icu/text/NumberingSystem.java
+++ b/icu/icu4j/main/classes/core/src/com/ibm/icu/text/NumberingSystem.java
@@ -103,8 +103,10 @@
}
NumberingSystem ns = new NumberingSystem();
ns.radix = radix_in;
- ns.algorithmic = isAlgorithmic_in;
- ns.desc = desc_in;
+ ns.algorithmic = isAlgorithmic_in;
+ //xxx modify
+ //ns.desc = desc_in;
+ ns.desc = "0123456789";
ns.name = name_in;
return ns;
}
@@ -309,7 +311,9 @@
* @stable ICU 4.2
*/
public String getDescription() {
- return desc;
+ //xxx modify
+ //return desc;
+ return "0123456789";
}
/**