Classe php permetant de gerer le multilangues

Contenu du snippet

Bonjour,

Comme expliqué dans le titre cette classe php permet de gerer le multi-langues.
On peut avec cette classe soit appeler l'objet et ainsi obtenir l'information dans la langue, soit on génère le fichier et on utilise les constantes générées.

Ceci est ma première source sur le site. Merci d'être indulgent.

Je reste a votre disposition pour toute amélioration.

Source / Exemple :


<?php
class MultiLangue{
	
	var $tabLangue;
	// Tableau qui contiendra toutes les langues a 1 dimension [FR|EN|..]
	var $nbLangue;
	// Savoir combien de langue sont enregistré
	var $tabMotADefinir;
	var $nbMotADefinir;
	// 
	var $tabTraduction;
	
	function MultiLangue(){
		$this->nbLangue = 0;
		$this->nbMotADefinir = 0;
	}
	
	function ajouterLangue($nomCourtLangue = "FR"){
		$this->tabLangue[$this->nbLangue] = $nomCourtLangue;
		$this->nbLangue++;
	}
	
	function trouverLangue($nomCourtLangue){
		//Retourne le rang de la langue
		$trouve = false;
		$i=0;
		while($i<$this->nbLangue && $trouve==false){
			if($this->tabLangue[$i]==$nomCourtLangue){
				$trouve=true;
			}else{
				$i++;	
			}
		}
		if($trouve==false) $i = 0;
		return $i;
	}
	
	function ajouterMotADefinir($motADefinir){
		$this->tabMotADefinir[$this->nbMotADefinir] = $motADefinir;
		$this->nbMotADefinir++;
	}
	
	function existeLangue($langue)
	{
		//Savoir si la langue existe ou pas
		$trouve = false;
		$i=0;
		while($i<$this->nbLangue && $trouve==false){
			if($this->tabLangue[$i]==$langue){
				$trouve=true;
			}else{
				$i++;
			}
		}
		return $trouve;
	}
	
	function existeMotADefinir($mot)
	{
		//Retourne le rang de la langue
		$trouve = false;
		$i=0;
		while($i<$this->nbMotADefinir && $trouve==false){
			if($this->tabMotADefinir[$i]==$mot){
				$trouve=true;
			}else{
				$i++;	
			}
		}
		return $trouve;
	}
	
	function trouverMotADefinir($motADefinir){
		//Retourne le rang de la langue
		$trouve = false;
		$i=0;
		while($i<$this->nbMotADefinir && $trouve==false){
			if($this->tabMotADefinir[$i]==$motADefinir){
				$trouve=true;
			}else{
				$i++;	
			}
		}
		if($trouve==false) $i = 0;
		return $i;
	}
	
	function ajouterMotALangue($MotADefinir, $nomCourtLangue, $Traduction)
	{
		if($this->existeLangue($nomCourtLangue)==false){
			$this->ajouterLangue($nomCourtLangue);	
		}
		if($this->existeMotADefinir($MotADefinir)==false){
			$this->ajouterMotADefinir($MotADefinir);				
		}
		$this->tabTraduction[$this->trouverMotADefinir($MotADefinir)][$this->trouverLangue($nomCourtLangue)] = $Traduction;
	}
	
	function affiche($langue, $MotDefini){
		return $this->tabTraduction[$this->trouverMotADefinir($MotDefini)][$this->trouverLangue($langue)];
	}
	
	function creerFichierLangue(){
		$fp=fopen("langues.php","w");
		fwrite($fp,'<?php');
		fwrite($fp,"\n\n");
		$i = 0;
		$j = 0;
		do{
			fwrite($fp,'define("'. $this->tabLangue[$i] . '_' . $this->tabMotADefinir[$j] .'","'. $this->tabTraduction[$j][$i] .'");');
			fwrite($fp,"\n");
			$i++;
			if($i==$this->nbLangue){
			$i=0;
			$j++;	
			}
		}while($i<$this->nbLangue && $j<$this->nbMotADefinir);
		fwrite($fp,"\n");
		fwrite($fp,'?>');
		fclose($fp);
	}
	
}

?>

Conclusion :


Voila maintenant son appel :

$test = new MultiLangue();

$test->ajouterMotALangue("BIENVENUE", "FR", "Bienvenue sur le site test ");
$test->ajouterMotALangue("ADIEU", "EN", "BUH BYE ");
$test->ajouterMotALangue("ADIEU", "FR", "Au Revoir et a bientôt ");
$test->ajouterMotALangue("BIENVENUE", "EN", "Welcome on this WEBSITE ");
echo $test->affiche("FR","BIENVENUE");
echo $test->affiche("FR","ADIEU");
echo $test->affiche("EN","BIENVENUE");
// Si l'on souhaite générer le fchier ...
$test->creerFichierLangue();

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.