Voila j'ai effectuer un script en php me permettant de charger un fichier xml suivant un formulaire.
En fait j'ai réaliser ce script pour me permettre de réaliser un site multilingue or mon site ayant pas mal de contenu je souhaiterai créer un fichier xml par page ou a l'interrieur je gererer mes traduction.
Or le probleme c'est que je ne c'est pas comment faire pour accéder au bon fichier xml suivant la page! Ci-joint le code php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php header( 'content-type: text/html; charset=utf-8' ); function findLocale ($loc = '', $block = 'notext') { // fonction allant chercher la traduction d'un bloc donné dans le fichier xml de localisation. Prend en paramètre la langue à utiliser, et l'élément contenant le texte. L'élément a pour le nom l'ID du block où on va afficher le texte if ($loc === '') { // si loc n'existe pas $loc = $_SESSION['locale']; // on lui assigne la variable de session } $doc = simplexml_load_file ('locales.xml'); // on charge le fichier de localisation $resultat = $doc ->xpath ($loc.'/'.$block); // on va chercher le noeud correct if (!empty ($resultat)) { // si le tableau n'est pas vide, il y a un texte foreach ($resultat as $noeud) { utf8_encode($noeud ); return $noeud; // on renvoie ce texte } } else { $resultat = $doc ->xpath ($loc.'/notext'); // sinon on va chercher le message d'erreur foreach ($resultat as $noeud) { $noeud= utf8_encode($noeud); return $noeud; } } } ?>Voila j'espere obtenir une reponse positive je ne suis qu'un débutant en php et xml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php session_start (); function checkLocale () { // fonction pour tenter de déterminer la langue utilisée par le système client (non garantie) $locale = $_SERVER['HTTP_ACCEPT_LANGUAGE']; if (substr ($locale, 0, 2) === 'fr') { return 'FRANCAIS'; } if (substr ($locale, 0, 2) === 'en') { return 'ENGLISH'; } return false; } if (!isset ($_SESSION['locale'])) { if (false !== ($check = checkLocale ())) { $_SESSION['locale'] = $check; } else { $_SESSION['locale'] = 'FRANCAIS'; // on met une langue par défaut dans une variable de session } } ?> <!-- Formulaire pour le choix des langues --> <form method="post" action=""> <input type="submit" value="ENGLISH" name="langue" /> <input type="submit" value="FRANCAIS" name="langue" /> </form> <?php // on vérifie le choix de la langue dans le formulaire, et on assigne la valeur correcte à la variable de session if (isset ($_POST['langue'])) { $_SESSION['locale'] = $_POST['langue']; } ?>
Partager