2010-06-29 3 views
0

Je développe un site utilisant php et mysql. Je veux savoir ... quelle est la meilleure façon de gérer un support multilingue? Je souhaite qu'un utilisateur puisse sélectionner dans une liste déroulante et sélectionner sa langue. Ensuite, tout (contenu, boutons, liens) à l'exception du contenu écrit par l'utilisateur est dans leur langue.comment faire un site php multilingue?

Quelle est une bonne façon d'aborder cela? Utiliser un cookie? Session?

+0

double possible de [ce qui est la meilleure façon de mettre un système de traduction sur le site php?] (Http://stackoverflow.com/questions/2344383/what-is-the-best-way-to-put-a -traduction-system-in-php-site) – Gordon

+0

Essayez d'utiliser $ _SERVER [ "HTTP_ACCEPT_LANGUAGE"] et faire le menu déroulant/commande manuelle en option. – mario

Répondre

2

Quelque chose comme ça fonctionne très bien:

Langs.php

<? 

// check if language switch as been set at url var 
if ($_GET["lang_change"]) { 

    $_SESSION['session_name']["lang"] = $_GET["lang_change"]; 

} 


// set value to lang for verification 
$active_lang = $_SESSION['session_name']["lang"]; 


// verify $lang content and set proper file to be load 
switch ($active_lang) { 

    case 'prt': 
     $lang_file = 'prt.php'; 
     break; 

    case 'gbr': 
     $lang_file = 'gbr.php'; 
     break; 

    case 'fra' : 
     $lang_file = 'fra.php'; 
     break; 

    case 'esp' : 
     $lang_file = 'esp.php'; 
     break; 

    case 'deu' : 
     $lang_file = 'deu.php'; 
     break; 

    default: 
     $lang_file = 'gbr.php'; 

} 


// load proper language file for site presentation 
include_once ('$lang_file); 

?> 

LANG GBR FICHIER (gbr.php)

define("LANG_PAGETITLE_HOMEPAGE", 'Homepage'); 
define("LANG_BTN_KNOW_MORE", 'know more'); 

MÉTHODE Changement de langue (exemple url)

<a href="index.php?lang_change=gbr" title"">USE ENG</a> 

Fondamentalement, vous avez des fichiers PHP avec des constantes, chaque fichier avec un lang.

Lors d'un clic, vous définissez une URL var (ex: lang_change = lang).

Cela forcera la page reload, et le fichier langs.php comprennent au dessus de votre index.php chargera la langue sélectionnée ...

Si vous avez besoin d'explications à ce sujet, laissez un commentaire et je Je vais vous envoyer un échantillon de travail!

Ps: les variables de session figurant dans ce code est utile pour l'interaction avec les systèmes de connexion, ou tout simplement pour éviter d'avoir les paramètres d'URL ...

0

Je pense que ce qui suit va vous aider à obtenir une idée de base de la développer.

Dans un site Web, un site Web multilingue devrait comporter des interfaces utilisateur/modèles dans lesquels les étiquettes codées en dur devraient être liées à des variables. Ces variables doivent être chargées avec les valeurs de langue correctes. Cela peut être fait facilement en incluant le fichier de langue contenant les valeurs dans cette langue spécifique. Vous pouvez avoir autant de fichiers de langue dans un dossier.

Vous aurez besoin d'écrire un script en php, car chaque fois que l'utilisateur sélectionne la langue dans la liste déroulante, la page peut recharger avec une session de langue. Un autre script php pour récupérer la langue sélectionnée dans les données de cette session et inclure le fichier de langue pertinent dans le modèle/l'interface utilisateur.

La même approche peut être utilisée pour récupérer des données de contenu à partir d'une table, où dans toutes les requêtes MySQL, vous pouvez utiliser une recherche supplémentaire pour le type de langage de la table de contenu. de sorte que ce fichier sera chargé. Dans de nombreux cas, les langages requièrent que le langage HTML et CSS soient définis en conséquence pour que le rendu de la langue s'effectue parfaitement dans le navigateur.Cela signifie que vous pouvez également définir la langue à l'intérieur du HTML et en CSS définir les polices et les directions (de droite à gauche ou de gauche à droite).

Je vous recommande de lire ce qui suit afin d'obtenir plus d'informations sur la façon de le faire. http://www.stylusinc.com/website/multilanguage_support.htm

1
  • Enregistrer tout de contenu dynamique signalé avec l'utilisation langue réelle
  • de Marque gettext() pour les boutons, etc. Celui-ci est beaucoup plus rapide que d'inclure des fichiers .php avec des tableaux
1

Tout d'abord vous devez ajouter toutes les valeurs dans chaque langue dynamiquement. Tout en ajoutant du contenu dynamique à votre site Web, u pouvez ajouter languageId à chaque champ de vos tables dans la base de données. Et vous pouvez montrer que le contenu à la fin avant au nom de cette languageId.

Questions connexes