在基于Web的应用程序中,我们希望更改fa_IR语言环境中的数字格式。 (波斯语和阿拉伯语中的数字Unicode与拉丁数字不同)。 java不支持此功能(对于swing基本应用程序,您可以使用形状数字http://docs.oracle.com/javase/tutorial/i18n/text/shapedDigits.html)
无论如何,这个形成器将用unicode波斯数字替换ASCII数字。该算法很简单,并在下面替换
0 >>>> \u06F0
1 >>>> \u06F1
2 >>>> \u06F2
3 >>>> \u06F3
4 >>>> \u06F4
5 >>>> \u06F5
6 >>>> \u06F6
7 >>>> \u06F7
8 >>>> \u06F8
9 >>>> \u06F9
虽然我们可以编写一个简单的转换器并在每次向用户显示数字之前调用它,但我们正在寻找更好的解决方案。我们希望扩展Java Locale并向其添加新的NumberFormate。
我们相信通过这种方法,我们将波斯数字显示为波斯数字,我们仍然会有其他数字格式选项。例如,#0.0 ##来格式化数字。
请告诉我们如何扩展java数字格式并将其注册到fa_IR ?! 如果我对格式化的假设是正确的,请告诉我。
答案 0 :(得分:3)
我认为你可以使用Locale Sensitive Services SPI来做到这一点:http://docs.oracle.com/javase/tutorial/i18n/locale/services.html