2014-06-10 9 views
5

Desidero localizzare i numeri digitandoli con una locale e finito con l'uso di ICU4J. Sono riuscito in molti locali ma non sembra averlo fatto per alcuni come georgiano, turco o arabo.numeri di formattazione (spellout) con icu4j

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

Quando il debug del set di regole in profondità di formattatore oggetto sembra vuota e la stampa in inglese (per default credo).

Nel sito ICU è scritto che: ICU fornisce regole spellout numero per diversi locali, ma non per tutte le impostazioni internazionali che supporta ICU, e non tutti i tipi di regole predefinite. Inoltre, dalla versione 2.6, alcune delle regole fornite sono note per essere incomplete.

Ma sembra pagina di configurazione del proprio ICU può farlo per quel locali troppo (http://demo.icu-project.org/icu4jweb/numero.jsp)

Ho anche possibile individuare .res file nella icu5j-53.1.jar sotto il mio .m2 cartella (\ ICU4J-53.1 \ com \ ibm \ ICU \ impl \ data \ icudt53b \ rbnf)

Gradirei qualsiasi aiuto su come la pagina demo può riuscire a farlo e perché non posso?

+0

Ho provato a livello locale con il codice e la stessa versione di icu4j e ottengo l'output turco corretto. –

+0

Ho anche provato con la versione 3.4.4, e quindi il mio output è in inglese. Potresti controllare le tue dipendenze (transitive) e assicurarti di non avere in qualche modo una versione precedente? –

+0

Grazie per la risposta. Avevi ragione, ho controllato il mio albero delle dipendenze e qualche altra libreria dipende da una versione precedente (4.0) di esso. Dopo averlo risolto, ho iniziato a ricevere l'output turco. –

risposta

3

Ho testato il codice con la versione 53.1 e ho ottenuto l'output turco corretto. Ho quindi ripeterlo con la versione 3.4.4 e ho ottenuto l'output in inglese come descritto nella domanda.

Molto probabilmente, si sta introducendo una versione precedente tramite una dipendenza da transitatore.

+1

La versione 56.1 funziona abbastanza bene per la maggior parte delle versioni locali tra cui "Tr", dipendenza Maven di seguito, nel caso in cui aiuti: ' com.ibm.icu ICU4J 56,1 ' – realPK

Problemi correlati