Page web multilingue

Fermé
Marc - Modifié par Marc le 28/12/2014 à 15:50
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 29 déc. 2014 à 07:45
Bonjour,

je suis actuellement en train de créer une page web perso static (pas de BDD) du type suivant:

www.monsite.com/maPage

Je voudrais que maPage soit accessible en plusieurs langues. La traduction sera effectuée par moi-même, je ne souhaite pas faire tourner de plugin.

La sélection de la langue s'effectue sur la page elle même, l'utilisateur cliquera sur le drapeau de sa langue.

Je souhaite que, quelle que soit la langue choisie, mon URL reste www.monsite.com/maPage

Ma question est donc de savoir quel serait le meilleur moyen pour mettre en place ce système?

Passer par du PHP avec une BDD serait-il judicieux (sachant qu'il y aurait énormément de champs dans ma/mes table(s) car maPage constitue un CV) ? Ou bien créer un sous domaine pour chaque langue (us.monsite.com/ , es.monsite.com/ ...) ? Ou encore un dossier pour chaque langue: www.monsite.com/fr/maPage, www.monsite.com/en/maPage

Je ne sais que faire.
Merci
A voir également:

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
Modifié par jordane45 le 28/12/2014 à 16:32
Bonjour,
PHP => Oui
BDD => pas nécéssairement..


Pour ma part.. j'utilise des fichiers de langue.
Je m'explique.
Je vais avoir par exemple un fichier PHP que je vais nommer : Lng_FR.php et un autre Lng_EN.php ...

Dans les pages de mon site.. au lieu d'écrire les MOTS ou PHRASES je vais utiliser des CONSTANTES..
Par exemple :

<?php echo LANG_BONJOUR;?>

Et donc dans mes fichiers de langue :
Dans le FR
<code php>
<?php
define("LANG_BONJOUR";"bonjour");
?>


Dans le EN :
<?php
define("LANG_BONJOUR";"Hello");
?>


Pour gérer le choix du fichier...
Tu peux stocker le choix de l'utilisateur dans un cookie par exemple...
et donc, lorsque tu charges ta page, tu regardes ce que contient le cookie pour la langue :

//récupération du cookie
$lang = isset($_COOKIE['chx_Lng'])?$_COOKIE['chx_Lng']:'FR';


//On inclus le fichier de langue correspondant :
include("Lng_".$lang.".php");





Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
2
Ok merci, je pense que ce tuto explique tes dires? Le grand 3
http://aerilys.fr/tutoriels/tuto_multilingue.pdf
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
29 déc. 2014 à 07:45
Bonjour,

Une solution:
- langue par défaut "fr"
- créer un cookie lors de la sélection d'une langue, par exemple de en it es (allemand, anglais, italien, espagnol....).

Au chargement d'une page:

<?php
   $lang = "fr";
   if (isset($_COOKIE['lang'])) {
       $lang = $_COOKIE['lang'];
   }
?>


et plus loin dans la page HTML, pour un titre par exemple:

<?php if($lang=='fr'): ?>
  <h1>mon titre en français</h1>
<?php else if($lang=='en'): ?>
  <h1>mon titre en anglais</h1>
....etc....
<?php endif; ?>

A+
-1