venerdì 27 dicembre 2013

Localizzazione 1/2

Un oggetto di tipo Locale rappresenta un insieme di caratteristiche peculiari di un paese, ossia linguaggio, cultura, formattazione di numeri e di date.
La classe java.util.Locale possiede alcune importanti proprietà riferite a 3 entità fondamentali, il nome del paese, il nome della lingua e il nome del cosiddetto VARIANT, che indica la variazione del linguaggio all'interno del paese (praticamente il dialetto):
  • getCountry() che torna il codice del paese;
  • getDisplayCountry() che torna il nome del paese;
  • getLanguage() che torna il codice del linguaggio del paese;
  • getDisplayLanguage() che torna la descrizione del linguaggio del paese;
  • getVariant() che torna il variant code;
  • getDisplayVariant() che torna la descrizione del variant.
 Con questo semplice codice possiamo avere informazioni sui Locale presenti nella nostra JVM.
Oltre alle 3 informazioni fondamentali su paese-linguaggio-dialetto abbiamo anche informazioni aggiuntive in alcuni linguaggi (script ed extensions) che vedremo poi negli esempi.


public static void main(String[] args) {
  Locale[] lista=Locale.getAvailableLocales();
  System.out.println(Locale.getDefault());
  System.out.printf("Numero locale presenti %s",lista.length);
  System.out.println();
  for(Locale l:lista){
   //if(l.getLanguage().equals("it"))
   System.out.println(l+" - "+l.getDisplayName());
   
  }
  

 }


L'output può essere filtrato se si inserisce il commento, stampando soltanto quello che corrisponde al country code desiderato.
Se ad esempio mettiamo "en" nel filtro avremo il seguente output:

it_IT
Numero locale presenti 156
en_MT - inglese (Malta)
en_GB - inglese (Regno Unito)
en_CA - inglese (Canada)
en_US - inglese (Stati Uniti)
en_ZA - inglese (Sudafrica)
en - inglese
en_SG - inglese (Singapore)
en_IE - inglese (Irlanda)
en_IN - inglese (India)
en_AU - inglese (Australia)
en_NZ - inglese (Nuova Zelanda)
en_PH - inglese (Filippine)

I primi 2 caratteri rappresentano il codice del linguaggio, quindi abbiamo il codice del Paese (es en_GB ).
Ci possono poi essere anche il codice variant. Ad esempio abbiamo (se filtriamo per language "no") tra gli output questa stringa:
no_NO_NY ossia norvegese (Norvegia,Nynorsk)
Il Nyorsk è infatti un dialetto norvegese utilizzato da circa il 10-15% della popolazione norvegese.

In alcuni casi sono presenti anche gli script e le extension, ossia altre informazioni aggiuntive oltre al dialetto (variant)  . Ad esempio se scegliamo come codice "th" otteniamo tra gli altri risultati:
th_TH_TH_#u-nu-thai - thai (Thailandia,TH)


qui non abbiamo lo script ma abbiamo le extension, in questo caso u-nu-thai.
Per vedere un esempio di script possiamo provare il codice linguaggio "sr".
Vedremo in output ad esempio:
sr_ME_#Latn - serbo (Latino,Montenegro)

Latn è un esempio di script, deve essere  fatto da 4 lettere di cui la prima maiuscola (e. Latn,Cyrl).

Nessun commento:

Posta un commento