/ / Se si dispone del codice ISO del paese `US`,` FR`, come si ottiene il codice Locale (`Locale.US`,` Locale.FRANCE`)? - Java, internazionalizzazione, impostazioni internazionali, valuta

Se si ha il prefisso ISO `US`,` FR`, come si ottiene il codice locale (`Locale.US`,` Locale.FRANCE`)? - java, internazionalizzazione, locale, valuta

Se hai il prefisso internazionale US, FR (ISO-3166-1 alpha-2 prefisso internazionale), come si ottiene il prefisso internazionale (Locale.US, Locale.FRANCE) per fare qualcosa del genere:

System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34));
System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34));

$12.34
12,34 €

risposte:

14 per risposta № 1

Non puoi "t, perché un locale è usato per contenere alingua, non un paese. Può contenere una lingua per un paese specifico e per una variante specifica in questo paese, ma "è prima una lingua. E non esiste una relazione uno a uno tra una lingua e un paese. La maggior parte delle lingue sono parlate in vari paesi e molti paesi hanno diverse lingue.

Se avessi il prefisso internazionale per una lingua, potresti usarlo new Locale(code). Ma con un prefisso internazionale, tutto ciò che puoi fare è chiamare getAvailableLocales, scorrere i risultati e trovarne uno con il prefisso del proprio paese. Ma potrebbero essercene diversi.


2 per risposta № 2

Puoi creare le impostazioni internazionali,

new Locale("en", "US")
new Locale("fr", "FR")

o

scorrere Locale.getAvailableLocales() fino a quando non trovi la tua locale e poi usa quell'istanza


2 per risposta № 3

Un'impostazione internazionale è specificata soprattutto dal codice lingua ISO-639, possibile anche un codice paese ISO-3166 e una variante. Il Locale La classe ha costruttori che accettano solo un codice di lingua, oppure un codice di paese o una variante.

Se disponi solo del prefisso internazionale, devi prima disporre di una mappa che lo converta in un codice lingua, ma che non produca necessariamente un risultato univoco, in molti paesi viene utilizzata più di una lingua ufficiale.


2 per risposta № 4

In Java7 c'è il Locale.Builder, ma prima non c'è un modo semplice. Puoi, tuttavia, creare un metodo di utilità:

  1. ciclo continuo Locale.getAvailableLocales()
  2. per ogni controllo se locale.getCountryCode().equals(countryCodeParam) e restituirlo