Subversion Repositories Applications.framework

Rev

Rev 232 | Rev 274 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 232 Rev 241
Line 10... Line 10...
10
 * C'est une Singleton. Une seule classe de traduction peut être instanciée par Application.
10
 * C'est une Singleton. Une seule classe de traduction peut être instanciée par Application.
11
 *
11
 *
12
 * @category	PHP 5.2
12
 * @category	PHP 5.2
13
 * @package	Framework
13
 * @package	Framework
14
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
14
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
15
 * @copyright	2010 Tela-Botanica
15
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
16
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
16
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
17
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
17
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
18
 * @since 		0.3
18
 * @since 		0.3
19
 * @version	$Id$
19
 * @version	$Id$
20
 * @link		/doc/framework/
20
 * @link		/doc/framework/
21
 */
21
 */
22
 
-
 
23
class I18n {
22
class I18n {
24
	/** Format de traduction utilisant les fichier .ini */
23
	/** Format de traduction utilisant les fichier .ini */
25
	const FORMAT_INI = '.ini';
24
	const FORMAT_INI = '.ini';
Line 26... Line 25...
26
	
25
	
Line 31... Line 30...
31
	private static $traductions = array();
30
	private static $traductions = array();
Line 32... Line 31...
32
	
31
	
33
	/** Langue courrante utilisée par l'application. */
32
	/** Langue courrante utilisée par l'application. */
Line -... Line 33...
-
 
33
	private static $langue = null;
-
 
34
	
-
 
35
	/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
34
	private static $langue = null;
36
	private static $parametres_obligatoires = array('chemin_i18n', 'i18n_url_parametre', 'i18n_langue_defaut', 'fw_debogage');
35
	
37
	
36
	private function __construct() {
38
	private function __construct() {
37
		self::verifierParametresConfig();
39
		Config::verifierPresenceParametres(self::$parametres_obligatoires);
Line 38... Line 40...
38
		self::trouverLangue();
40
		self::trouverLangue();
39
	}
41
	}
Line 220... Line 222...
220
			self::$instance = new I18n();
222
			self::$instance = new I18n();
221
		}
223
		}
222
	}
224
	}
Line 223... Line 225...
223
	
225
	
224
	/**
-
 
225
	 * Vérifie que tous les paramêtres de config nécessaires au fonctionnement de cette classe existe dans les fichiers
-
 
226
	 * de configurations.
-
 
227
	 */
-
 
228
	private static function verifierParametresConfig() {
-
 
229
		$ok = true;
-
 
230
		$parametres = array('chemin_i18n', 'i18n_url_parametre', 'i18n_langue_defaut');
-
 
231
		foreach ($parametres as $param) {
-
 
232
			if (is_null(Config::get($param))) {
-
 
233
				$m = "L'utilisation de la classe I18n nécessite de définir '$param' dans un fichier de configuration.";
-
 
234
				self::ajouterErreur($m);
-
 
235
				$ok = false;
-
 
236
			}
-
 
237
		}
-
 
238
		return $ok;
-
 
239
	}
-
 
240
	
-
 
241
	/**
226
	/**
242
	 * Ajouter une message d'erreur
227
	 * Ajouter une message d'erreur
243
	 */
228
	 */
244
	private static function ajouterErreur($m, $e = E_USER_WARNING) {
229
	private static function ajouterErreur($m, $e = E_USER_WARNING) {
245
		if (Config::get('fw_debogage') === true) {
230
		if (Config::get('fw_debogage') === true) {