我想通过用语言环境拼写数字来本地化数字,最后使用ICU4J。我在很多地方都取得了成功,但似乎没能完成一些任务,比如格鲁吉亚语、土耳其语或阿拉伯语。
ULocale locale = new ULocale("Tr"); //Turkish
Double d = Double.parseDouble(input);
NumberFormat formatter = new RuleBasedNumberFormat(locale, RuleBasedNumberFormat.SPELLOUT);
String result = formatter.format(d);当我调试格式化程序对象内部的规则集时,它看起来是空的,它是用英语打印出来的(我猜是默认的)。
在ICU网站中,它写道: ICU为几个地区提供号码拼写规则,但不是为ICU支持的所有区域设置,而不是所有预定义的规则类型。另外,在2.6版时,已知有些提供的规则是不完整的。
但似乎ICU自己的演示页面也可以用于该地区(http://demo.icu-project.org/icu4jweb/numero.jsp)
我还可以在icu5j-53.1.jar中的(\icu4j-53.1\com\ibm\icu\impl\data\icudt53b\rbnf)文件夹下找到.res文件
对于演示页面是如何做到的,以及为什么我做不到,我会很感激。
发布于 2014-06-11 08:09:20
我用53.1版本测试了您的代码,得到了正确的土耳其输出。然后,我重新测试了3.4.4版本,并获得了您在问题中描述的英语输出。
最有可能的是,您是通过传递的maven依赖来导入旧版本的。
https://stackoverflow.com/questions/24141988
复制相似问题