2

在基于 Web 的应用程序中,我们希望更改 fa_IR 语言环境中的数字格式。(波斯语和阿拉伯语中数字的 Unicode 与拉丁数字不同)。Java 不支持此功能(对于摇摆基础应用程序,您可以使用形状数字http://docs.oracle.com/javase/tutorial/i18n/text/shapeDigits.html

无论如何,这个格式化程序将用 unicode 波斯数字替换 ASCII 数字。该算法很简单,并进行以下替换

0 >>>> \u06F0
1 >>>> \u06F1
2 >>>> \u06F2
3 >>>> \u06F3
4 >>>> \u06F4
5 >>>> \u06F5
6 >>>> \u06F6
7 >>>> \u06F7
8 >>>> \u06F8
9 >>>> \u06F9

虽然我们可以编写一个简单的转换器并在每次向用户显示数字之前调用它,但我们正在寻找更好的解决方案。我们想要扩展 Java 语言环境并向其添加新的 NumberFormate。

我们相信通过这种方法,我们将使用波斯数字显示波斯数字,并且我们还将拥有其他数字格式选项。例如,#0.0## 来格式化数字。

请让我知道我们如何扩展 java 数字格式并将其注册到 fa_IR?!另外请让我知道我对格式的假设是否正确。

4

1 回答 1

3

我认为您可以使用区域设置敏感服务 SPI 执行此操作:http: //docs.oracle.com/javase/tutorial/i18n/locale/services.html

于 2013-09-28T15:20:51.333 回答