【ICU】Android全局修改数字显示系统

【描述】
在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";
     }
 
     /**

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值