Question

J'ai créé 3 packs linguistiques pour mon site: anglais, espagnol et français. Je suis juste de la difficulté à les mettre en œuvre en fonction de sélection de l'utilisateur. Je le menu déroulant suivant:

<select onchange='document.location.href=this.options[this.selectedIndex].value;'>
  <option>Select</option>
  <option value="?lang=eng">US English</option>
  <option value="?lang=esp">Español</option>
    <option value="?lang=fra">Français</option>
</select>

Comment puis-je inclure les fichiers linguistiques basés sur ce que l'utilisateur sélectionne, je ne sais pas quoi mettre comme état if .

Merci.

Était-ce utile?

La solution

Dans un premier temps, enregistrez la valeur que l'utilisateur a sélectionné dans la session utilisateur. par exemple:.

switch($_POST['lang']) {
    case 'en': $_SESSION['lang'] = 'English'; break;
    case 'sp': $_SESSION['lang'] = 'Spanish'; break;
    default:   $_SESSION['lang'] = 'English'; break;
}

Sur chaque demande de page, récupérer les fichiers de langue à partir du dossier de langue pertinente en fonction de la valeur que vous avez enregistré.

Par exemple, ce quoi ressemblera la structure des fichiers:

  • anglais
    • global.php
    • register.php
  • espagnol
    • global.php
    • register.php

Ensuite, chaque fois que vous devez charger un fichier texte, utilisez:

function load_text_file($filename) {
    include 'languages/' . $_SESSION['lang'] . '/' . $filename.'php';
    return $txt;    // $txt should be an array
}
//...

$text = array(); $text += load_text_file('Global'); $text += load_text_file('Register');

Autres conseils

Comme vous apportez dans l'option via une chaîne de requête, vous pouvez y accéder avec

$lang = $_GET['lang']

Pour mon modèle, ce morceau de code est

$_SESSION['language'] = 'english';

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top