2011-10-05 3 views
10

E 'possibile in Java senza alcuna libreria aggiuntiva per internazionalizzare le distanze?Internazionalizzazione delle distanze in java

voglio dire che è possibile gestire che, con data, ora, valute, numeri ...

mi sarei aspettato di trovare un NumberFormat.getDistanceInstance o qualcosa del genere.

C'è qualcosa di simile già incorporato o dovrei fare il mio proprio sistema di internazionalizzazione per le distanze (per lo più miglia vs chilometri)

risposta

4

Mi piacerebbe sapere di tale formattatore ma purtroppo non l'ho mai fatto. Il problema è che non ci sono ancora questi dati in CLDR, quindi non è facile da fare.

Vale a dire che la gente ci pensa davvero da un po 'di tempo - vedi IC Measure class. Sfortunatamente per ora, sembra il più vicino possibile per determinare il sistema di misurazione - vedi LocaleData e LocaleData.MeasurementSystem.
Dopodiché sei da solo. Dovresti lasciare questo per i traduttori (hanno bisogno di tradurre effettivamente le unità e il modello di formattazione).

+0

Vedere: http://unicode.org/cldr/trac/ticket/4045 –

2

No, non c'è niente nel JDK per i18n distanze, pesi e la maggior parte delle altre unità di misura, ad eccezione per i calendari (so che non è realmente un'unità, ma il calendario lunare è molto diverso dal calendario gregoriano). Anche i sistemi operativi non hanno questo tipo di informazioni.

L'unica i18n che puoi fare con il tempo, le valute, i numeri è la formattazione. Non c'è funzione per cambiare l'unità di misura.

Quindi dovrai costruire il tuo per le distanze: S.

+0

'Anche i sistemi operativi non hanno questo tipo di informazioni '- MS mantiene informazioni sul fatto che l'utente usi la metrica o il sistema' U.S..', quindi non è proprio vero. Anche se ovviamente la GUI è ancora responsabile su come vuole visualizzare le informazioni, ma il sistema operativo gli fornisce le informazioni necessarie. – Voo

+0

Oh, non sapevo che Windows avesse quell'informazione (e ho appena scoperto che OS X ha anche lui). Mi chiedo se * nix abbia questa informazione. – Augusto