PHP site multi langue fr/en
Pascal_22
Messages postés
559
Statut
Membre
-
avion-f16 Messages postés 20367 Statut Contributeur -
avion-f16 Messages postés 20367 Statut Contributeur -
Bonjour,
Je désir faire une site web. Selon la ville choisi (d'une liste de ville déjà préétablis)' j'afficherai le site selon la langue....
Mais en fait, le site restera pareil, même design, seulement les termes accueil/home, rechercher/search ...... changerons et l'infos de la ville sera affiché.
Dois-je tout mettre les termes dans un tableau : exemple
$terme['accueil']['fr'] = "Accueil"
$terme['accueil']['en'] = "Home"
et selon la langue choisi j'affiche le bon mot...
Est-ce comme cela qu'est créé un site multilingue?
Merci!
Pascal
Je désir faire une site web. Selon la ville choisi (d'une liste de ville déjà préétablis)' j'afficherai le site selon la langue....
Mais en fait, le site restera pareil, même design, seulement les termes accueil/home, rechercher/search ...... changerons et l'infos de la ville sera affiché.
Dois-je tout mettre les termes dans un tableau : exemple
$terme['accueil']['fr'] = "Accueil"
$terme['accueil']['en'] = "Home"
et selon la langue choisi j'affiche le bon mot...
Est-ce comme cela qu'est créé un site multilingue?
Merci!
Pascal
A voir également:
- PHP site multi langue fr/en
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site x - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site pour vendre des objets d'occasion - Guide
5 réponses
Salut,
Tu peux utiliser des tableaux, mais je te recommande plutôt GetText.
https://www.php.net/gettext
https://openclassrooms.com/fr/courses
Tu peux utiliser des tableaux, mais je te recommande plutôt GetText.
https://www.php.net/gettext
https://openclassrooms.com/fr/courses
Salut Avion-f16,
Wow, ok assez complexe mais très bien...
as-tu déjà utilisé cette méthode?
Est-ce que tu crois que cela peut ralentir le site d'aller lire, et ce a chaque changement de page, dans un autre fichier pour savoir comment afficher le contenu?
Un site comme facebook, qui a des millions d'utilisateur actif et ce en même temps, crois-tu qui utilise cette méthode? Et même commentcamarche, crois tu qu'il utilise?
Je sais que mon site aura du succès, donc beaucoup de visite.... Est-ce la façon de faire.
Merci de ton aide!
Pascal
Wow, ok assez complexe mais très bien...
as-tu déjà utilisé cette méthode?
Est-ce que tu crois que cela peut ralentir le site d'aller lire, et ce a chaque changement de page, dans un autre fichier pour savoir comment afficher le contenu?
Un site comme facebook, qui a des millions d'utilisateur actif et ce en même temps, crois-tu qui utilise cette méthode? Et même commentcamarche, crois tu qu'il utilise?
Je sais que mon site aura du succès, donc beaucoup de visite.... Est-ce la façon de faire.
Merci de ton aide!
Pascal
Je pense que GetText est la meilleure des solutions, autant du point de vue performances qu'en clarté et en organisation du code.
Bonjour,
Une solution:
1) avoir un script petit et très simple, nommé selectLangue.php quii contient ceci:
2) exemple de lien qui appelle ce script:
<a href='selectLangue.php?lang=en'>english</a>
<a href='selectLangue.php?lang=fr'>français</a>
<a href='selectLangue.php?lang=de'>deutsch</a>
Quand on clique sur un lien de sélection liguistique, le script selectLangue.php crée un cookie lang qui contient au choix fr ou en ou de... ou tout autre code linguistique de votre choix.
3) en tête de script principal (de préférence en modèle MVC on aura:
<?php
$lang = 'fr';
if (!empty($_COOKIE['lang'])) {
$lang = $_COOKIE['lang'];
}
?>
4) dans un template phtml on exploite$lang comme ceci:
<?php if($lang=='fr'): ?>
<h1>Bienvenue</h1>
<?php elseif($lang=='en'): ?>
<h1>Welcome</h1>
<?php if($lang=='de'): ?>
<h1>Wilkommen</h1>
<?php endif; ?>
A noter que selectLangue peut être appelé depuis n'importe quelle page php, il est programmé pour retourner à cette page. Par exemple, si on l'appelle depuis index.php il renvoie la main à index.php, si on l'appelle depuis listeAnnonces.php, il retournera vers listeAnnonces.php
L'intérêt de mon astuce, c'est qu'il n'est pas nécessaire de créer des versions de pages dans différentes langues, mais seulement de sélectionner des portions de code HTML et/ou PHP selon la langue sélectionné par l'utilisateur.
Exemple de site que j'ai fait sur ce modèle:
http://berniere.camping-car.org/
J'y gère pas moins de 6 langues!
A+
Une solution:
1) avoir un script petit et très simple, nommé selectLangue.php quii contient ceci:
<?php
setcookie("lang",$_GET['lang']);
$back = $_SERVER['HTTP_REFERER'];
header("Location: $back");
2) exemple de lien qui appelle ce script:
<a href='selectLangue.php?lang=en'>english</a>
<a href='selectLangue.php?lang=fr'>français</a>
<a href='selectLangue.php?lang=de'>deutsch</a>
Quand on clique sur un lien de sélection liguistique, le script selectLangue.php crée un cookie lang qui contient au choix fr ou en ou de... ou tout autre code linguistique de votre choix.
3) en tête de script principal (de préférence en modèle MVC on aura:
<?php
$lang = 'fr';
if (!empty($_COOKIE['lang'])) {
$lang = $_COOKIE['lang'];
}
?>
4) dans un template phtml on exploite$lang comme ceci:
<?php if($lang=='fr'): ?>
<h1>Bienvenue</h1>
<?php elseif($lang=='en'): ?>
<h1>Welcome</h1>
<?php if($lang=='de'): ?>
<h1>Wilkommen</h1>
<?php endif; ?>
A noter que selectLangue peut être appelé depuis n'importe quelle page php, il est programmé pour retourner à cette page. Par exemple, si on l'appelle depuis index.php il renvoie la main à index.php, si on l'appelle depuis listeAnnonces.php, il retournera vers listeAnnonces.php
L'intérêt de mon astuce, c'est qu'il n'est pas nécessaire de créer des versions de pages dans différentes langues, mais seulement de sélectionner des portions de code HTML et/ou PHP selon la langue sélectionné par l'utilisateur.
Exemple de site que j'ai fait sur ce modèle:
http://berniere.camping-car.org/
J'y gère pas moins de 6 langues!
A+
??? pas le top en tous cas ... tu as pensé référencement ???
5 pages actuellement dans google ...
et "<meta name="Language" content="fr">
<meta name="description" content="...">
<meta name="keywords" content="...">
<meta name="Robots" content="follow,index,all">
<meta name="REVISIT-AFTER" content="60 days">"
dans toutes les langues !!!
pas trop bien parti là ..... ;)
5 pages actuellement dans google ...
et "<meta name="Language" content="fr">
<meta name="description" content="...">
<meta name="keywords" content="...">
<meta name="Robots" content="follow,index,all">
<meta name="REVISIT-AFTER" content="60 days">"
dans toutes les langues !!!
pas trop bien parti là ..... ;)
Salut,
Avec cet exemple ça peut encore passe, mais avec de longs contenus contenant beaucoup de code HTML ...
4) dans un template phtml on exploite$lang comme ceci: <?php if($lang=='fr'): ?> <h1>Bienvenue</h1> <?php elseif($lang=='en'): ?> <h1>Welcome</h1> <?php if($lang=='de'): ?> <h1>Wilkommen</h1> <?php endif; ?>
Avec cet exemple ça peut encore passe, mais avec de longs contenus contenant beaucoup de code HTML ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Tu peux remplacer les mots par une variable tableau comme ceci...
$lang sera alors défini dans les infos contenu dans ta liste de villes.
Ensuite tu peux avoir différents fichiers php par langues.
Exemple:
Tu trouveras un très bon exemple dans PunBB.
La voiture ça rends con et fainéant !
Vieux motard que jamais ...
Tu peux remplacer les mots par une variable tableau comme ceci...
$lang['Accueil']
$lang sera alors défini dans les infos contenu dans ta liste de villes.
Ensuite tu peux avoir différents fichiers php par langues.
Exemple:
$lang = array('Accueil => 'Home', 'A propos' => 'About us');
Tu trouveras un très bon exemple dans PunBB.
La voiture ça rends con et fainéant !
Vieux motard que jamais ...