begin process at 2012 02 15 13:53:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > UNE GESTION MULTILINGUE COMPLETE

UNE GESTION MULTILINGUE COMPLETE


 Information sur la source

Note :
2 / 10 - par 1 personne
2,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :multilingue, langue, cookie, defaut, anglais Niveau :Débutant Date de création :16/01/2008 Date de mise à jour :19/01/2008 06:33:21 Vu :11 465

Auteur : scriptino

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Une quarantaine de lignes de codes que j'ai crée à partir d'une page blanche en exactement 30 minutes. Ces lignes sont d'une grande utilité pour tout site multilingue. Ils permettent de gérer les langues du sites (plusieurs) en même temps de 3 manières :
1. Par cookie
2. Par langue préférée du navigateur du client
3. Par langue par défaut si aucune des deux précédentes n'est mentionnée.

Bien entendu, ce script vous donne comme résultat un echo ""; il suffit de le remplacer par votre include de fichier langue ou bien redirection (header:location) vers sous domaine.

J'attends vos commentaires et améliorations.
N'hésitez pas à poser des questions.

ps: lougha veut dire langue en arabe :)
ps2: les commentaires sont en anglais pour un meilleur référencement du code.

Source

  • <?php
  • /**
  • * @author Taher ALAMI
  • * @copyright 2008
  • */
  • /** IF THE USER CLICKS ON ANY LANGUAGE WE WILL WRITE IT ON A COOKIE */
  • if ($_GET["lang"]) {
  • SetCookie("lougha",$_GET["lang"]);
  • if ($_GET["lang"]=="en") {
  • echo ("en par cookie");
  • } elseif ($_GET["lang"]=="fr") {
  • echo ("fr par cookie");
  • }
  • } else {
  • /** ELSE IF LANGUAGE ALREADY CHOOSEN AND SAVED ON THE COOKIE */
  • if ($_COOKIE["lougha"]=="en")
  • {
  • // include("lang_en.php");
  • echo ("en déjà choisi");
  • }
  • else if ($_COOKIE["lougha"]=="fr")
  • {
  • // include("lang_fr.php");
  • echo ("fr déjà choisi");
  • } else {
  • /** IF LANGUAGE IS NOT YET CHOOSEN USE THE PREFERED LANGUAGE OF USER BROWSER */
  • $langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  • $navlang=$langs[0];
  • if($navlang == "en") {
  • // include("includes/en.php");
  • echo ("en");
  • } else if($navlang == "fr") {
  • // include("includes/fr.php");
  • echo ("fr");
  • } else {
  • /** IF NOT FOUND USE THE DEFAUT LANGUAGE : USUALY ENGLISH */
  • // include("includes/en.php");
  • echo ("default");
  • }
  • }
  • }
  • ?>
  • <center>
  • <a href="?lang=en">ENGLISH</a> | <a href="?lang=fr">FRANCAIS</a>
  • </center>
<?php

/**
 * @author Taher ALAMI
 * @copyright 2008
 */
/** IF THE USER CLICKS ON ANY LANGUAGE WE WILL WRITE IT ON A COOKIE */
if ($_GET["lang"]) {
SetCookie("lougha",$_GET["lang"]);
if ($_GET["lang"]=="en") {
	echo ("en par cookie");
	} elseif ($_GET["lang"]=="fr") {
	echo ("fr par cookie");
	} 
	} else {
/** ELSE IF LANGUAGE ALREADY CHOOSEN AND SAVED ON THE COOKIE */
	if ($_COOKIE["lougha"]=="en")
	{
//		include("lang_en.php");
		echo ("en déjà choisi");
	}
	else if ($_COOKIE["lougha"]=="fr")
	{
//		include("lang_fr.php");
		echo ("fr déjà choisi");
	} 	else 	{
/** IF LANGUAGE IS NOT YET CHOOSEN USE THE PREFERED LANGUAGE OF USER BROWSER */
			$langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
			$navlang=$langs[0];
			    if($navlang == "en") {
			//		include("includes/en.php");
					echo ("en");
				} else if($navlang == "fr") {
			//		include("includes/fr.php");
					echo ("fr");
				} else {
/** IF NOT FOUND USE THE DEFAUT LANGUAGE : USUALY ENGLISH */
			//		include("includes/en.php");
					echo ("default");
				}
	} 
}
?>
<center>
<a href="?lang=en">ENGLISH</a> | <a href="?lang=fr">FRANCAIS</a>
</center>

 Conclusion

Lignes de code par Taher ALAMI (STAR)
Dieu bénisse Internet.


 Historique

16 janvier 2008 03:10:41 :
Correction Orthographe !
19 janvier 2008 06:33:21 :
- Passage du code à débutant au lieu d'initié - Remplacement de $HTTP_COOKIE_VARS par $_COOKIE - Remplacement de else if par elseif - Changement du titre, ancien (LA NOUVELLE GESTION MULTILINGUE COMPLETE 2008) par nouveau (UNE GESTION MULTILINGUE COMPLETE) Merci pour les remarques de codefalse, malik7934, coucou747 et neigedhiver.

 Sources de la même categorie

Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000
Source avec Zip Source avec une capture GENERATEUR DE BOUTONS DE PARTAGES POUR RESEAUX SOCIAUX par cod57

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SYSTEM DE VOTE AJAX. par Dav_c
Source avec Zip CLASSE DATETIME AVEC TRADUCTION par 1030
Source avec une capture CLASS LANG AVEC COOKIE + HTTP_ACCEPT_LANGUAGE par CrazyShooter
Source avec Zip UN PETIT SITE MULTILANGUE par medbabs
Source avec Zip SITE EN PLUSIEURS LANGUES : EXEMPLE SIMPLE AVEC XML par malalam

Commentaires et avis

Commentaire de codefalse le 16/01/2008 07:37:22 administrateur CS

$HTTP_COOKIE_VARS ?????
Tu sais que ca n'existe plus depuis .... ouah ... longtemps !
L'heure est maintenant à $_COOKIE, $_SERVER, $_GET, $_POST, etc.
Pour un gestionnaire de langue, je te conseillerai plus de prendre note sur la classe de Malalam () car le problème là (enfin après ca dépend de la conception du site), c'est que tu doit avoir n différent sites pour n langues, alors que tu pourrais n'avoir qu'un site, avec le contenu qui change en fonction de la langue (encore une fois, je fait référence à Malalam).

Maintenant ce n'est qu'un choix comme un autre :)

http://www.phpcs.com/codes/PHP5-LOC-CLASSE-BACKOFFICE-INTERNATIONALISATION_44592.aspx

Commentaire de malik7934 le 16/01/2008 09:06:31

Salut,

Quelques remarques:
- utilise $_COOKIE plutôt que $HTTP_COOKIE_VARS
- pour la récupération du navigateur il te faut un substring de 2 caractères car certaine fois il y a plus de 2 caractères (comme en-us, fr-fr, ...)
- ce n'est pas une "nouvelle gestion de langue 2008", le principe de regarder le GET puis le cookie puis le browser est archi-ancien et archi-connu
- ce n'est en tous cas pas initié

Commentaire de coucou747 le 16/01/2008 09:25:41 administrateur CS

si tu pouvais passer ca en debutant... enfin ca ne vaut pas du tout initie, t'as juste quelques if et quelques include, en plus, c'est mal code comme les deux precedents commentaires le montrent

Commentaire de neigedhiver le 17/01/2008 23:27:24 2/10

Salut,

+1 aux commentaires précédents.

De plus, je suis surpris que Coucou747 n'ai pas relevé les imbrications de if... J'ai l'impression qu'ells sont mal codées, elles aussi.
J'ai souvenir que elseif est différent de else if, et que le premier est bien plus performant que le second, car ne créant pas de nouveau bloc if. else if revient à faire else { if {, alors que elseif continue le bloc avec une nouvelle condition. Bref.
On peut tout à fait coder un site multilingue en 30 minutes avec autant de lignes que toi, mais sans nécessairement avoir autant de sites qu'on a de traductions. En fait, aucun mérite à ça, surtout avec un code comme ça. Si encore y'avait des classes super chiadées en PHP5, mais là, c'est du PHP3, ça n'a rien d'extraordinaire.
En fait, y'a plus de mérite à coder une classe toute bête en 3 mois mais super optimisée, flexible, ouverte, tout ça tout ça, que produire en 30 minutes en code PHP3 comme ça...

Commentaire de scriptino le 19/01/2008 06:35:18

Je vous remercie tous pour vos commentaires :)
Titre modifié
Niveau modifié
$_COOKIE corrigé
elseif corrigé

Merci encore !

Commentaire de begueradj le 28/04/2011 12:32:58

la description est pompeuse
on dirait Lopez qui montre ses fesses

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

SITE MULTILINGUE...Je suis à la dérive !!! [ par kenny18 ] salut,Dans le cadre d'un test, je dois cr&#233;er un site multilingue. J'ai modifi&#233; &#224; ma sauce le script retrouv&#233; sur phpdebutant.org. Un site à la langue donnée [ par rich25200 ] bonjour,J'aimerai savoir comment on fait pour que lorsqu'un francais se connecte a un site internet celui ci se met automatiquement en francais et si pb avec le multilangue [ par morpheus262 ] Salut,pour une fois c'est &nbsp;moi qui ai un probleme avec mon code, erreur assez bizard car j ai deja utilis&#233; ce principe et ca marche tres bie site multilingue [ par fankamdenise ] Bonjour Je voudrais concevoir un site multilingue ou du moins a deux langues francais et anglais. voici ce que j'utilise comme code: Dans ma page i Gestion contenu [ par yokoshia ] Bonsoir, Je me pose une question. Je souhaite réaliser une page simple avec plusieurs bloc de texte et multilingue. Je voudrais mettre ces textes dans probleme de recuperation de chaine de caractere dans ma base [ par sesterces ] Bonjour et merci d avance de votre aide, Voici mon probleme, je stocke dans ma base de donnees des chaines de caracteres pour les langues d un pays du animation avec cookie [ par apocal86 ] bonjours a tous je cherche a activé une animation jquery avec l'aide de cookie Pour résumé je veux que l'animation décolle une seul fois par visite [GetText] Changer de langue a la volée, en cours d'exécution... [ par karistote ] Bonjour a tous ! je travaille actuellement sur un site multilangue en php, utilisant gettext pour gérer les traductions. Cela fonctionne bien, mais j Cookie et multilangue [ par morpheus262 ] Salut,bon la je ne comprend plus j ai tout test&#233;, et pas moyen de lire la valeur du cookie Help me. voila mon code.fichier send_lang.php (c la qu Prob de connexion auto en php avec cookie ! [ par destiny ] Salut all :)Voila le code, en gros qd le membre se connecte sa cr&#233;e un cookie, si il quitte le si et reveins sans avoir vider son cache sa le rec


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales