PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-03-2011 18:48:50

clem14
Membre
Inscription : 16-03-2011
Messages : 7

Una aide facile pour un pro du php

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 réaliser une fonction qui permettrai de selectionner le bon fichier xml suivant la page! Ci-joint le code php:


<?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;
    }
  }
}
?>
 

<?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'];
}
?>
 
 

Voila j'espere obtenir une reponse positive je ne suis qu'un débutant en php et xml. wink

Hors ligne

#2 16-03-2011 19:22:11

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Una aide facile pour un pro du php

Saluton,
Apparemment tu es également un débutant en grammaire et orthographe françaises.
A part moogli, ici, je ne vois pas qui saurait faire pire !

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 souhaiterais créer un fichier xml par page ou a l'interrieur je gererer mes traductions.
Or le probleme c'est que je ne c'est pas comment faire pour réaliser une fonction qui permettrait de sélectionner le bon fichier xml suivant la page! Ci-joint le code php:


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 16-03-2011 19:36:12

clem14
Membre
Inscription : 16-03-2011
Messages : 7

Re : Una aide facile pour un pro du php

oui jusque la tu ne m'apprend rien wink

Hors ligne

#4 16-03-2011 22:35:42

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Una aide facile pour un pro du php

clem14 a écrit :

oui jusque là tu ne m'apprends rien wink

Il est vrai qu'on se demande si tu es capable d'apprendre quelque chose


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 16-03-2011 22:36:17

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Una aide facile pour un pro du php

conscient, c'est déjà pas mal wink
a++

Hors ligne

#6 17-03-2011 12:47:53

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Una aide facile pour un pro du php

Bon, sur le fond, à présent.
A quoi peut servir le code de la fonction findLocale qui suit le header puisqu'elle n'est jamais invoquée ?
De toutes façons, là où elle se situe dans le code je vois mal comment on pourrait s'en servir.
En outre, quel est  le lien entre les deux scripts ?
Bref, sur le fond comme sur la forme tout cela n'est pas très cohérent.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums