Subversion Repositories eFlore/Applications.cel

Rev

Rev 2613 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2613 Rev 2614
Line 1... Line 1...
1
package org.tela_botanica.client.i18n;
1
package org.tela_botanica.client.i18n;
Line 2... Line 2...
2
 
2
 
3
import org.tela_botanica.client.modeles.objets.Configuration;
3
import org.tela_botanica.client.modeles.objets.Configuration;
-
 
4
import com.google.gwt.i18n.client.Dictionary;
Line 4... Line 5...
4
import com.google.gwt.i18n.client.Dictionary;
5
import com.google.gwt.user.client.Window.Location;
5
 
6
 
6
/**
7
/**
7
 * Gère l'internationalisation 
8
 * Gère l'internationalisation 
Line 18... Line 19...
18
	/** langue par défaut */
19
	/** langue par défaut */
19
	protected String langueDefaut;
20
	protected String langueDefaut;
20
	/** langues disponibles */
21
	/** langues disponibles */
21
	protected String languesDisponibles;
22
	protected String languesDisponibles;
Line 22... Line 23...
22
 
23
 
23
	public Messages getInstance() {
24
	public static Messages getInstance() {
24
		if (instance == null) {
25
		if (instance == null) {
25
			instance = new Messages();
26
			instance = new Messages();
26
		}
27
		}
27
		return instance;
28
		return instance;
Line 28... Line 29...
28
	}
29
	}
29
 
-
 
30
	private Messages() {
30
 
31
		//this.langues = new HashMap<String, Dictionary>();
31
	private Messages() {
32
		// lire la config pour obtenir les langues
-
 
33
		languesDisponibles = "fr,en"; //Configuration.getLanguesDisponibles();
32
		// lire la config pour obtenir les langues
34
 
33
		languesDisponibles = Configuration.getLanguesDisponibles();
-
 
34
		// lire la config et charger la langue par défaut
-
 
35
		langueDefaut = Configuration.getLangueDefaut();
-
 
36
		// Si la langue est précisée dans l'url on la prend, sinon on prend celle par défaut
35
		// lire la config et charger la langue par défaut
37
		// @TODO: avertissement si la langue indiquée dans l'url n'est pas la bonne
36
		langueDefaut = "fr"; //Configuration.getLangueDefaut();
38
		String langueActive = getLangueActiveParUrlOuDefaut();
Line 37... Line 39...
37
		setLangue(langueDefaut);
39
		setLangue(langueActive);
38
	}
40
	}
39
 
41
 
Line 45... Line 47...
45
	/**
47
	/**
46
	 * Retourne un message dans la langue en cours
48
	 * Retourne un message dans la langue en cours
47
	 * @param cle
49
	 * @param cle
48
	 * @return
50
	 * @return
49
	 */
51
	 */
50
	public String getMessage(String cle) {
52
	public String get(String cle) {
51
		return getMessage(cle, langue);
53
		return get(cle, langue);
-
 
54
	}
-
 
55
	
-
 
56
	/**
-
 
57
	 * Retourne un message paramétré dans la langue en cours
-
 
58
	 * @param cle
-
 
59
	 * @param[] params
-
 
60
	 * @return
-
 
61
	 */
-
 
62
	public String get(String cle, String[] params) {
-
 
63
		return get(cle, langue, params);
52
	}
64
	}
Line 53... Line 65...
53
 
65
 
54
	/**
66
	/**
55
	 * Retourne un message dans la langue demandée; s'il n'est pas trouvé, le cherche
67
	 * Retourne un message dans la langue demandée; s'il n'est pas trouvé, le cherche
56
	 * dans la langue par défaut; en cas d'échec, retourne un terme générique d'avertissement
68
	 * dans la langue par défaut; en cas d'échec, retourne un terme générique d'avertissement
57
	 * @param cle
69
	 * @param cle
58
	 * @param langue
70
	 * @param langue
59
	 * @return
71
	 * @return
60
	 */
72
	 */
61
	public String getMessage(String cle, String langue) {
73
	public String get(String cle, String langue) {
62
		String nomDictionnaire = "messages_" + langue;
74
		String nomDictionnaire = "messages_" + langue;
63
		String message;
75
		String message;
64
		try {
76
		try {
65
			message = Dictionary.getDictionary(nomDictionnaire).get(cle);
77
			message = Dictionary.getDictionary(nomDictionnaire).get(cle);
Line 70... Line 82...
70
				message = "hoho c'est la merde";
82
				message = "hoho c'est la merde";
71
			}
83
			}
72
		}
84
		}
73
		return message;
85
		return message;
74
	}
86
	}
-
 
87
	
-
 
88
	/**
-
 
89
	 * Retourne un message paramétré dans la langue demandée
-
 
90
	 * @param cle
-
 
91
	 * @param langue
-
 
92
	 * @param[] params
-
 
93
	 * @return
-
 
94
	 */
-
 
95
	public String get(String cle, String langue, String[] params) {
-
 
96
		String message = get(cle, langue);
-
 
97
		for (int i = 0; i < params.length; i++) {
-
 
98
			message = message.replace("{"+i+"}", params[i]);
-
 
99
		}
-
 
100
		
-
 
101
		return message;
-
 
102
	}
-
 
103
	
-
 
104
	public String getLangueActiveParUrlOuDefaut() {
-
 
105
		//TODO: déplacer ceci si on est une chouette !
-
 
106
		return Location.getParameter("lang") == null ? langueDefaut : Location.getParameter("lang");
-
 
107
	}
75
}
108
}