La classe Locale per le Impostazioni Locali in Java
- La classe
Locale
in Java è utilizzata per gestire le impostazioni locali, come la rappresentazione di date, numeri e valute. - Fornisce costanti per diverse regioni e lingue, facilitando la creazione di oggetti che rappresentano specifiche impostazioni locali.
- La classe include metodi per ottenere informazioni leggibili dall'uomo sulle impostazioni locali, come il nome del paese e della lingua.
- A partire da JDK 7, la classe
Locale
supporta il BCP 47 e l'Unicode Technical Standard (UTS) 35, introducendo nuove funzionalità e metodi.
La classe Locale
La classe Locale
viene utilizzata per produrre oggetti che descrivono una regione geografica o culturale. È una delle diverse classi che forniscono la capacità di scrivere programmi che possono essere eseguiti in diversi ambienti internazionali. Ad esempio, i formati utilizzati per visualizzare date, orari e numeri sono diversi nelle varie regioni.
L'internazionalizzazione è un argomento ampio che va oltre lo scopo di questa guiada. Tuttavia, molti programmi dovranno occuparsi solo delle sue basi, che includono l'impostazione delle impostazioni locali correnti come la rappresentazione di date, numeri e valute. La classe Locale
fornisce un modo per specificare le impostazioni locali per un programma Java.
La classe Locale
definisce le seguenti costanti statiche che sono utili per gestire diversi locale comuni:
CANADA
CANADA_FRENCH
CHINA
CHINESE
ENGLISH
FRANCE
FRENCH
GERMANY
GERMAN
ITALIAN
ITALY
JAPAN
JAPANESE
KOREA
KOREAN
PRC
SIMPLIFIED_CHINESE
TAIWAN
TRADITIONAL_CHINESE
UK
US
Ad esempio, l'espressione Locale.ITALY
rappresenta l'oggetto Locale
per l'Italia. I costruttori per Locale
sono
Locale(String lingua)
Locale(String lingua, String paese)
Locale(String lingua, String paese, String variante)
Questi costruttori costruiscono un oggetto Locale
per rappresentare una lingua specifica e nel caso degli ultimi due, un paese. Questi valori devono contenere codici standard di lingua e paese. Informazioni di variante ausiliarie possono essere fornite in variante.
Locale
definisce diversi metodi. Uno dei più importanti è setDefault(), mostrato qui:
static void setDefault(Locale oggettoLocale)
Questo imposta la configurazione locale predefinita utilizzato dalla JVM a quello specificato da oggettoLocale
. Altri metodi interessanti sono i seguenti:
final String getDisplayCountry()
final String getDisplayLanguage()
final String getDisplayName()
Questi restituiscono stringhe leggibili dall'uomo che possono essere utilizzate per visualizzare il nome del paese, il nome della lingua e la descrizione completa delle impostazioni locali, rispettivamente. Questi metodi sono utili per visualizzare le impostazioni locali in un'interfaccia utente.
L'impostazione locale predefinita può essere ottenuto utilizzando getDefault()
, mostrato qui:
static Locale getDefault()
JDK 7 ha aggiunto aggiornamenti significativi alla classe Locale
che supportano il BCP 47 dell'Internet Engineering Task Force (IETF), che definisce tag per identificare le lingue, e Unicode Technical Standard (UTS) 35, che definisce il Locale Data Markup Language (LDML).
Il supporto per BCP 47 e UTS 35 ha causato l'aggiunta di diverse funzionalità a Locale
, inclusi diversi nuovi metodi e la classe Locale.Builder
. Tra gli altri, i nuovi metodi includono getScript()
, che ottiene lo script dell'impostazione locale, e toLanguageTag()
, che ottiene una stringa che contiene il tag della lingua dell'impostazione locale. La classe Locale.Builder
costruisce istanze di Locale
. Garantisce che una specifica di locale sia ben formata come definito da BCP 47. (I costruttori di Locale
non forniscono tale controllo.) Diversi nuovi metodi sono stati anche aggiunti a Locale
da JDK 8. Tra questi ci sono metodi che supportano filtri, estensioni e ricerche. JDK 9 ha aggiunto un metodo chiamato getISOCountries()
, che restituisce una collezione di codici paese per un dato valore di enumerazione Locale.IsoCountryCode
.
Calendar
e GregorianCalendar
sono esempi di classi che operano in modo sensibile alle impostazioni locali. DateFormat
e SimpleDateFormat
dipendono anche loro dalle impostazioni locali.