2,6 → 2,7 |
|
import org.tela_botanica.client.modeles.objets.Configuration; |
import com.google.gwt.i18n.client.Dictionary; |
import com.google.gwt.user.client.Window.Location; |
|
/** |
* Gère l'internationalisation |
20,7 → 21,7 |
/** langues disponibles */ |
protected String languesDisponibles; |
|
public Messages getInstance() { |
public static Messages getInstance() { |
if (instance == null) { |
instance = new Messages(); |
} |
28,13 → 29,14 |
} |
|
private Messages() { |
//this.langues = new HashMap<String, Dictionary>(); |
// lire la config pour obtenir les langues |
languesDisponibles = "fr,en"; //Configuration.getLanguesDisponibles(); |
|
languesDisponibles = Configuration.getLanguesDisponibles(); |
// lire la config et charger la langue par défaut |
langueDefaut = "fr"; //Configuration.getLangueDefaut(); |
setLangue(langueDefaut); |
langueDefaut = Configuration.getLangueDefaut(); |
// Si la langue est précisée dans l'url on la prend, sinon on prend celle par défaut |
// @TODO: avertissement si la langue indiquée dans l'url n'est pas la bonne |
String langueActive = getLangueActiveParUrlOuDefaut(); |
setLangue(langueActive); |
} |
|
public void setLangue(String langue) { |
47,11 → 49,21 |
* @param cle |
* @return |
*/ |
public String getMessage(String cle) { |
return getMessage(cle, langue); |
public String get(String cle) { |
return get(cle, langue); |
} |
|
/** |
* Retourne un message paramétré dans la langue en cours |
* @param cle |
* @param[] params |
* @return |
*/ |
public String get(String cle, String[] params) { |
return get(cle, langue, params); |
} |
|
/** |
* Retourne un message dans la langue demandée; s'il n'est pas trouvé, le cherche |
* dans la langue par défaut; en cas d'échec, retourne un terme générique d'avertissement |
* @param cle |
58,7 → 70,7 |
* @param langue |
* @return |
*/ |
public String getMessage(String cle, String langue) { |
public String get(String cle, String langue) { |
String nomDictionnaire = "messages_" + langue; |
String message; |
try { |
72,4 → 84,25 |
} |
return message; |
} |
|
/** |
* Retourne un message paramétré dans la langue demandée |
* @param cle |
* @param langue |
* @param[] params |
* @return |
*/ |
public String get(String cle, String langue, String[] params) { |
String message = get(cle, langue); |
for (int i = 0; i < params.length; i++) { |
message = message.replace("{"+i+"}", params[i]); |
} |
|
return message; |
} |
|
public String getLangueActiveParUrlOuDefaut() { |
//TODO: déplacer ceci si on est une chouette ! |
return Location.getParameter("lang") == null ? langueDefaut : Location.getParameter("lang"); |
} |
} |