/**
* Classe d'internationalisation JS. Requiert prototype 1.6.
* Objet de langue sous la forme : var = lang_fr{'cle' : 'traduction %0 avec un argument et même 2 : %1'} 
* @Author Olivier ROGER <roger.olivier@gmail.com>
* @Version 1.0.5
*
*/
var I18n = Class.create({
	initialize : function(){
		this._traduction = 'lang_fr';
	},
	
	/**
	* Charge les traductions de la langue choisie
	* @param object traduction Objet de traduction
	* @access public
	*/
	load : function(traduction){
		if(typeof(traduction)=='object')
			this._traduction = traduction;
		else
			alert('Translation not found');
	},
	
	/**
	* Traduit la chaine désirée
	* @param string cle Clé de la chaine à traduire
	* @access public
	* @return string
	*/
	_ : function(cle){
		if(this._traduction[cle])
			return this._format(this._traduction[cle],$A(arguments).slice(1));
		else
			return cle;
	},
	
	/**
	* Format la chaine avec les éventuels arguments supplémentaire.
	* @access private
	* @param string chaine Chaine à modifier
	* @ return string
	*/
	_format : function(chaine){
		//Suppression du premier arguments
		var _args = $A(arguments).slice(1);
		_args = _args.toString().split(',');
		return chaine.replace(/\%(\d+)/g,function(match,num){
				return _args[num];
			}
		)
	}
	
});

