PDA

View Full Version : [JAVA] i18n


k_mishima
11-01-2012, 00:40
Salve, ho creato 1 programmino e ora sto cercando di inserire la possibilità di cambiare lingua con scelta da parte dell'utente tramite bottone.

Ho creato 2 file .properties chiamati WowAbsoluteCoords_ENG e WowAbsoluteCoords_ITA dove vi sono le coppie chiave/valore per la traduzione
YOU_HAVENT_INSERT_COORDINATES=You haven't insert coordinates.
CREATE_GAMEOBJECT=Create gameobject
CREATE_CREATURE=Create creature
CLEAN_TEXTAREA=Clean textareas
SAVE_AS_SQL=Save in sql file
PASTE_GUI_RESULT=Paste here .gps command result
RESULT=Result
...


Al momento il codice è il seguente


private Locale locale;
private ResourceBundle resources;
private static String defaultLanguage;

.....

//Imposta la lingua di default
locale = Locale.getDefault();
if (locale.toString().equals("en_US")){
defaultLanguage="wowabsolutecoords/WowAbsoluteCoords_ENG";
}
else if (locale.toString().equals("it_IT")){
defaultLanguage="wowabsolutecoords/WowAbsoluteCoords_ITA";
}

resources = ResourceBundle.getBundle(defaultLanguage, locale);

....


Ogni stringa del programma è settata come segue
gameobjectJButton.setToolTipText(resources.getString("CREATE_GAMEOBJECT").toString());

Questo per tutti i componenti della GUI.

Ora, creato il bottone per il cambio della lingua e il suo ActionListener, come potrei fare a cambiare dinamicamente sfruttando i file di properties tutte le label con poche righe di codice?
Esiste sicuramente un metodo rapido che non conosco, non credo si debba usare un .setText per tutti gli elementi della GUI, anche perché alcuni si trovano su file diversi da quello della GUI, quindi non potrei usare i .setText

Grazie mille per gli aiuti :)

k_mishima
11-01-2012, 22:44
up:D