2014-06-10 18 views
5

Chcę zlokalizować liczby, wypisując je w locale i skończyło się na ICU4J. Udało mi się w wielu lokalizacjach, ale nie wydawało się, aby to zrobić dla kilku takich jak gruziński, turecki lub arabski.Formatowanie liczb (pisownia) z icu4j

ULocale locale = new ULocale("Tr"); //Turkish 
Double d = Double.parseDouble(input); 
NumberFormat formatter = new RuleBasedNumberFormat(locale, RuleBasedNumberFormat.SPELLOUT); 
String result = formatter.format(d); 

Kiedy debuguję zestaw reguł wewnątrz obiektu formater wydaje się pusty i drukuje w języku angielskim (domyślnie myślę).

Na stronie internetowej ICU jest napisane, że: ICU udostępnia reguły pisowni liczb dla kilku ustawień regionalnych, ale nie dla wszystkich ustawień regionalnych obsługiwanych przez ICU, a nie dla wszystkich wstępnie zdefiniowanych typów reguł. Ponadto, od wersji 2.6 niektóre z dostarczonych reguł są niekompletne.

Ale wydaje własną stronę demo OIOM może zrobić dla że zbyt locales (http://demo.icu-project.org/icu4jweb/numero.jsp)

ja również może zlokalizować .res pliki w icu5j-53.1.jar pod mój .m2 Folder (\ icu4j-53.1 \ com \ IBM \ ICU \ impl \ data \ icudt53b \ rbnf)

będzie wdzięczna za każdą pomoc o tym, jak strona demo uda się to zrobić i dlaczego ja nie mogę?

+0

Próbowałem już lokalnie z twoim kodem i tą samą wersją icu4j i otrzymuję poprawne wyniki tureckie. –

+0

Próbowałem również z wersją 3.4.4, a następnie moje wyniki są w języku angielskim. Czy mógłbyś sprawdzić swoje (przechodnie) zależności i upewnić się, że w jakiś sposób nie wyciągasz starej wersji? –

+0

Dzięki za odpowiedź. Miałeś rację, sprawdziłem drzewo zależności, a inna biblioteka jest zależna od wcześniejszej wersji (4.0). Po naprawieniu tego zacząłem uzyskiwać wyniki tureckie. –

Odpowiedz

3

Przetestowałem Twój kod w wersji 53.1 i otrzymałem prawidłowy wynik turecki. Następnie przetestowałem ponownie w wersji 3.4.4 i otrzymałem angielskie wyniki opisane w pytaniu.

Najprawdopodobniej ściągasz starszą wersję przez zależność przechodnią maven.

+1

Wersja 56.1 działa całkiem dobrze dla mnie w większości lokalizacji, w tym "Tr", zależność Maven poniżej, w przypadku, gdy pomaga: ' com.ibm.icu icu4j 56,1 ' – realPK