Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2614 Rev 2615
Line 1... Line 1...
1
package org.tela_botanica.client.i18n;
1
package org.tela_botanica.client.i18n;
Line -... Line 2...
-
 
2
 
2
 
3
import org.tela_botanica.client.cel2;
3
import org.tela_botanica.client.modeles.objets.Configuration;
4
import org.tela_botanica.client.modeles.objets.Configuration;
4
import com.google.gwt.i18n.client.Dictionary;
5
import com.google.gwt.i18n.client.Dictionary;
Line 5... Line 6...
5
import com.google.gwt.user.client.Window.Location;
6
import com.google.gwt.user.client.Window.Location;
6
 
7
 
7
/**
8
/**
8
 * Gère l'internationalisation 
9
 * Gère l'internationalisation 
9
 */
-
 
10
public class Messages {
-
 
11
 
-
 
Line 12... Line 10...
12
	/** singleton */
10
 */
13
	private static Messages instance;
11
public class Msg {
14
 
12
 
15
	/** contient un dictionnaire de messages par langue */
13
	/** contient un dictionnaire de messages par langue */
16
	//protected Map<String, Dictionary> langues;
14
	//protected Map<String, Dictionary> langues;
17
	/** langue en cours */
15
	/** langue en cours */
18
	protected String langue;
16
	protected static String langue;
19
	/** langue par défaut */
17
	/** langue par défaut */
20
	protected String langueDefaut;
-
 
21
	/** langues disponibles */
-
 
22
	protected String languesDisponibles;
-
 
23
 
-
 
24
	public static Messages getInstance() {
-
 
25
		if (instance == null) {
-
 
26
			instance = new Messages();
-
 
Line -... Line 18...
-
 
18
	protected static String langueDefaut;
27
		}
19
	/** langues disponibles */
28
		return instance;
20
	protected static String languesDisponibles;
29
	}
21
 
30
 
22
	// A appeller par la classe mère du cel pour l'initialiser
31
	private Messages() {
23
	public static void init() {
32
		// lire la config pour obtenir les langues
24
		// lire la config pour obtenir les langues
33
		languesDisponibles = Configuration.getLanguesDisponibles();
25
		languesDisponibles = Configuration.getLanguesDisponibles();
34
		// lire la config et charger la langue par défaut
26
		// lire la config et charger la langue par défaut
-
 
27
		langueDefaut = Configuration.getLangueDefaut();
35
		langueDefaut = Configuration.getLangueDefaut();
28
		// Si la langue est précisée dans l'url on la prend, sinon on prend celle par défaut
36
		// Si la langue est précisée dans l'url on la prend, sinon on prend celle par défaut
29
		// @TODO: avertissement si la langue indiquée dans l'url n'est pas la bonne
Line 37... Line 30...
37
		// @TODO: avertissement si la langue indiquée dans l'url n'est pas la bonne
30
		String langueActive = getLangueActiveParUrlOuDefaut();
38
		String langueActive = getLangueActiveParUrlOuDefaut();
31
		cel2.LogVersFirebug(langueActive);
39
		setLangue(langueActive);
32
		setLangue(langueActive);
40
	}
33
	}
Line 41... Line 34...
41
 
34
 
42
	public void setLangue(String langue) {
35
	public static void setLangue(String langue) {
43
		// @TODO vérifier que la langue est une clé de la Map
36
		// @TODO vérifier que la langue est une clé de la Map
44
		this.langue = langue;
37
		Msg.langue = langue;
45
	}
38
	}
46
 
39
 
47
	/**
40
	/**
48
	 * Retourne un message dans la langue en cours
41
	 * Retourne un message dans la langue en cours
Line 49... Line 42...
49
	 * @param cle
42
	 * @param cle
50
	 * @return
43
	 * @return
51
	 */
44
	 */
52
	public String get(String cle) {
45
	public static String get(String cle) {
53
		return get(cle, langue);
46
		return get(cle, langue);
54
	}
47
	}
55
	
48
	
56
	/**
49
	/**
57
	 * Retourne un message paramétré dans la langue en cours
50
	 * Retourne un message paramétré dans la langue en cours
Line 58... Line 51...
58
	 * @param cle
51
	 * @param cle
59
	 * @param[] params
52
	 * @param[] params
60
	 * @return
53
	 * @return
61
	 */
54
	 */
62
	public String get(String cle, String[] params) {
55
	public static String get(String cle, String[] params) {
63
		return get(cle, langue, params);
56
		return get(cle, langue, params);
64
	}
57
	}
65
 
58
 
66
	/**
59
	/**
67
	 * Retourne un message dans la langue demandée; s'il n'est pas trouvé, le cherche
60
	 * Retourne un message dans la langue demandée; s'il n'est pas trouvé, le cherche
68
	 * dans la langue par défaut; en cas d'échec, retourne un terme générique d'avertissement
61
	 * dans la langue par défaut; en cas d'échec, retourne un terme générique d'avertissement
69
	 * @param cle
62
	 * @param cle
70
	 * @param langue
63
	 * @param langue
Line 90... Line 83...
90
	 * @param cle
83
	 * @param cle
91
	 * @param langue
84
	 * @param langue
92
	 * @param[] params
85
	 * @param[] params
93
	 * @return
86
	 * @return
94
	 */
87
	 */
95
	public String get(String cle, String langue, String[] params) {
88
	public static String get(String cle, String langue, String[] params) {
96
		String message = get(cle, langue);
89
		String message = get(cle, langue);
97
		for (int i = 0; i < params.length; i++) {
90
		for (int i = 0; i < params.length; i++) {
98
			message = message.replace("{"+i+"}", params[i]);
91
			message = message.replace("{"+i+"}", params[i]);
99
		}
92
		}
Line 100... Line 93...
100
		
93
		
101
		return message;
94
		return message;
Line 102... Line 95...
102
	}
95
	}
103
	
96
	
104
	public String getLangueActiveParUrlOuDefaut() {
97
	protected static String getLangueActiveParUrlOuDefaut() {
105
		//TODO: déplacer ceci si on est une chouette !
98
		//TODO: déplacer ceci si on est une chouette !
106
		return Location.getParameter("lang") == null ? langueDefaut : Location.getParameter("lang");
99
		return Location.getParameter("lang") == null ? langueDefaut : Location.getParameter("lang");