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ę?
Próbowałem już lokalnie z twoim kodem i tą samą wersją icu4j i otrzymuję poprawne wyniki tureckie. –
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? –
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. –