Php site en plusieurs langues
Résolu/Fermé
Dadox
-
13 oct. 2008 à 11:37
bg62 Messages postés 23665 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 31 décembre 2024 - 26 nov. 2011 à 17:51
bg62 Messages postés 23665 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 31 décembre 2024 - 26 nov. 2011 à 17:51
A voir également:
- Php site en plusieurs langues
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site de vente en ligne particulier - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site inaccessible - Guide
9 réponses
Le but justement est de ne pas avoir 3 fois la même page en langue différente...mais d'avoir une seule pages avec un include au début qui pointe vers un fichier lang.php choisit en fonction de la langue cliquer par l'utilisateur....
"Le plus simple aurait été de faire ça dynamiquement, en stockant les traductions dans une base de données et que ta variable de Session ($_LANGUE par exemple) soit modifié à chaque clic sur un drapeau."
Comment faire pour justement modifier cette variable a chaque clic sur un drapeau ???
Comment faire pour justement modifier cette variable a chaque clic sur un drapeau ???
Mack95
Messages postés
64
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
19 octobre 2008
15
13 oct. 2008 à 12:51
13 oct. 2008 à 12:51
Par exemple :
index.php
-----------
...<a href="toto.php?lang=fr"><img src="drapeau_fr alt="Langue française" /></a>...
toto.php
---------
<?php
//ouverture de la session et tout et tout
...
$_LANGUE = $_GET['lang'];
...
header("Location:index.php");
?>
C'est juste un exemple. Y'a d'autres solutions bien entendu (tout mettre dans la même page par exemple).
index.php
-----------
...<a href="toto.php?lang=fr"><img src="drapeau_fr alt="Langue française" /></a>...
toto.php
---------
<?php
//ouverture de la session et tout et tout
...
$_LANGUE = $_GET['lang'];
...
header("Location:index.php");
?>
C'est juste un exemple. Y'a d'autres solutions bien entendu (tout mettre dans la même page par exemple).
ok merci bcp, c'est tout ce que j'avais besoin de savoir...
Pour le reste, je vais essayer de me débrouiller....
Merci
Dadox
Pour le reste, je vais essayer de me débrouiller....
Merci
Dadox
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Au secours, je remonte ce sujet qui date un peu cela dit, c'est le plus récent qu'il y ait, me semble-t-il, à ce sujet (le plupart date de 2005 ou 2006)...
Ça fait plus d'un mois que je lis des tuto' sur le net afin de faire un choix pour le site multilingue (français, anglais et russe) que j'ai à réaliser "à la main" (pas de CMS of course), et je suis un peu perdue. Moi aussi je souhaite utiliser les sessions.
Mais je bloque au niveau de la structure de mes tables dans la base de données.
Est-il possible, par exemple pour la table Accueil (la plus simple) dans laquelle je voudrais stocker plusieurs contenus de textes, tous traduits, de n'utiliser qu'une ligne (et donc qu'un id) par bloc ?
Je m'explique : pour le texte de présentation par exemple, si j'ai dans ma table les champs ID, TITRE, CONTENU_FR, CONTENU_EN et CONTENU_RU, pourrais-je les générer dans mon PHP à l'aide de session, dans la bonne langue ? Ou vaut-il mieux créer une ligne par langue, avec du coup des ID différentes (auquel cas j'ai du mal à voir comment ce sera appelé dans le PHP, mais il semblerait que ce soit souvent comme ça qu'on fait).
Je suis un peu perdue, et ça commence à urger, si vous pouviez me répondre et me dire comment vous auriez fait, ce serait sympa :)
Ça fait plus d'un mois que je lis des tuto' sur le net afin de faire un choix pour le site multilingue (français, anglais et russe) que j'ai à réaliser "à la main" (pas de CMS of course), et je suis un peu perdue. Moi aussi je souhaite utiliser les sessions.
Mais je bloque au niveau de la structure de mes tables dans la base de données.
Est-il possible, par exemple pour la table Accueil (la plus simple) dans laquelle je voudrais stocker plusieurs contenus de textes, tous traduits, de n'utiliser qu'une ligne (et donc qu'un id) par bloc ?
Je m'explique : pour le texte de présentation par exemple, si j'ai dans ma table les champs ID, TITRE, CONTENU_FR, CONTENU_EN et CONTENU_RU, pourrais-je les générer dans mon PHP à l'aide de session, dans la bonne langue ? Ou vaut-il mieux créer une ligne par langue, avec du coup des ID différentes (auquel cas j'ai du mal à voir comment ce sera appelé dans le PHP, mais il semblerait que ce soit souvent comme ça qu'on fait).
Je suis un peu perdue, et ça commence à urger, si vous pouviez me répondre et me dire comment vous auriez fait, ce serait sympa :)
Bonsoir,
Je me permet de remonté ce sujet car j'ai également opté pour une version multilingue de mon site.
J'ai choisi un script classique. Quel l'on peu apercevoir à cette page http://www.phpdebutant.org/article107.php.
On a donc un include sur chaque page qui appelle le script qui lui suivant la langue choisi appelle le fichier correspond se trouvant dans un dossier dédié.
J'ai quelques peu écourté le script (Supprimé le cookie.).
Cependant, je ne sais pas si c'est du a ça, mais le script de fonctionne pas correctement. Tout du moins pas comme je le voudrais/l'espérais.
Une fois ma page traduite, anglais par exemple, mes liens ne renvoient pas vers des pages traduites. Je me dois de cliquer de nouveau sur le drapeau pour les traduire.
Comment remédier à ceci ? Que rajouter au script ou ailleurs pour que cela fonctionne correctement ?
Je vous remercie par Avance, Amicalement, Yann.
Je me permet de remonté ce sujet car j'ai également opté pour une version multilingue de mon site.
J'ai choisi un script classique. Quel l'on peu apercevoir à cette page http://www.phpdebutant.org/article107.php.
On a donc un include sur chaque page qui appelle le script qui lui suivant la langue choisi appelle le fichier correspond se trouvant dans un dossier dédié.
J'ai quelques peu écourté le script (Supprimé le cookie.).
Cependant, je ne sais pas si c'est du a ça, mais le script de fonctionne pas correctement. Tout du moins pas comme je le voudrais/l'espérais.
Une fois ma page traduite, anglais par exemple, mes liens ne renvoient pas vers des pages traduites. Je me dois de cliquer de nouveau sur le drapeau pour les traduire.
Comment remédier à ceci ? Que rajouter au script ou ailleurs pour que cela fonctionne correctement ?
Je vous remercie par Avance, Amicalement, Yann.
bg62
Messages postés
23665
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
31 décembre 2024
2 392
25 nov. 2011 à 23:17
25 nov. 2011 à 23:17
en résumé c'est très simple si tu veux un résultat efficace :
1 langue = 1 site (= 1 ndd) différent(s)
:)
1 langue = 1 site (= 1 ndd) différent(s)
:)
Bonjour,
En gros, créer des sous domaines avec quelque chose comme : fr.monsite.com et en.monsite.com ?
J'y ai pensé aussi. Mais au vu de la structure de mon site j'ai opté pour l'autre solution car elle été plus adéquate.
Tout passe par les variables à l'heure actuelle, donc je pensais qu'une de plus (la langue) ne gênerait pas trop ..
(index.php?page=$page par exemple)
Je vais continuer à chercher.
Merci de votre aide. Bien amicalement, Yann.
En gros, créer des sous domaines avec quelque chose comme : fr.monsite.com et en.monsite.com ?
J'y ai pensé aussi. Mais au vu de la structure de mon site j'ai opté pour l'autre solution car elle été plus adéquate.
Tout passe par les variables à l'heure actuelle, donc je pensais qu'une de plus (la langue) ne gênerait pas trop ..
(index.php?page=$page par exemple)
Je vais continuer à chercher.
Merci de votre aide. Bien amicalement, Yann.
bg62
Messages postés
23665
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
31 décembre 2024
2 392
26 nov. 2011 à 15:14
26 nov. 2011 à 15:14
"En gros, créer des sous domaines avec quelque chose comme : fr.monsite.com et en.monsite.com ? "
non !
1ndd différent pour chaque langue ;)
non !
1ndd différent pour chaque langue ;)
bg62
Messages postés
23665
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
31 décembre 2024
2 392
26 nov. 2011 à 16:17
26 nov. 2011 à 16:17
de la théorie à la pratique:
https://www.unesourisetmoi.info/pages/internationalisation.php
prends le temps de bien lire jusqu'en bas ...
;)
https://www.unesourisetmoi.info/pages/internationalisation.php
prends le temps de bien lire jusqu'en bas ...
;)
Mack95
Messages postés
64
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
19 octobre 2008
15
13 oct. 2008 à 11:39
13 oct. 2008 à 11:39
Tu ne peux pas plutot mettre tes drapeaux en tant que lien vers ta page Php ?
Le plus simple aurait été de faire ça dynamiquement, en stockant les traductions dans une base de données et que ta variable de Session ($_LANGUE par exemple) soit modifié à chaque clic sur un drapeau.
Le plus simple aurait été de faire ça dynamiquement, en stockant les traductions dans une base de données et que ta variable de Session ($_LANGUE par exemple) soit modifié à chaque clic sur un drapeau.
Mack95
Messages postés
64
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
19 octobre 2008
15
13 oct. 2008 à 12:25
13 oct. 2008 à 12:25
Dans ce cas, créer toi une base de données avec toutes les traductions. Ton index.php devra contenir la mise en forme de ta page puis que des variable de sessions Php pour le contenu.. Dans ton langue.php tu remplis les variables de sessions par le contnu trouvé en fonction de la langue.
Je t'enverai un exemple si j'ai le temps ce soir car j'ai du mal m'exprimer
Je t'enverai un exemple si j'ai le temps ce soir car j'ai du mal m'exprimer
13 oct. 2008 à 12:17
Le "truc", comme tu dis, c'est que si tu ne nous montres pas la structure actuelle de tes pages, on ne peut rien faire !
Une proposition, à modifier selon ta structure :
Passer en paramètre de tes url '?lang=fr[en]', et dans le php :
Tu peux aussi envisager de créer des dossiers fr/ en/ etc., qui contiendront les fichiers de contenu (avec le même nom).
Il suffirait alors de définir la racine du contenu suivant la langue...