Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1465 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Site Multi-Langues....Comment procéder ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Site Multi-Langues....Comment procéder ?

n°1743320
cvb
Posté le 09-06-2008 à 09:09:21  profilanswer
 

Bonjour,
 
Je viens vous pour avoir un avis sur une solution. Je dois faire un site en Multi-Langues.  
Quelles est la manière façon de procéder ?
 
- Un template par langues ?
- Mettre les champs et le texte dans la base de donnée ?
- Utiliser des fichiers externes ?
 
 
Je dévellope en PHP / MYSQL.
 
 
J'hésite entre les trois solutions, notament pour le référencement.  
Quelle est la meillieur ? S'il en n'existe d'autres lesquels sont-elles ?
 
D'avance merci
Cvb
 

mood
Publicité
Posté le 09-06-2008 à 09:09:21  profilanswer
 

n°1743349
NewsletTux
<Insérez ici votre vie />
Posté le 09-06-2008 à 10:07:19  profilanswer
 

Salut,
 
le sujet a plusieurs fois été abordé.
pour ma part, je fais un tableau (php) de paires index/valeurs pour une langue, tableau que je décline en plusieurs fichiers selon les langues.
 
concrètement, par exemple, le fichier fr.php contient :

Code :
  1. <?php
  2.    $array_lang['hello'] = 'bonjour';
  3.    $array_lang['connect'] = 'Connexion';
  4.    $array_lang['disconnect'] = 'Déconnexion';
  5. ?>


 
puis à coté, je fais mes autres langues
par exemple, en.php :

Code :
  1. <?php
  2.    $array_lang['hello'] = 'hello';
  3.    $array_lang['connect'] = 'Connection';
  4.    $array_lang['disconnect'] = 'Log out';
  5. ?>


 
puis dans le programme, je passe en paramètre (en session, par exemple) ma langue : $_SESSION['lang'] = 'fr'; et j'inclue le fichier correspondant : include($_SESSION['lang'].'.php');
 
pour les fonctions, je passe en global mon tableau :

Code :
  1. <?php
  2.   function Blabla($prenom, arg1, arg2, ... argX)
  3.   {
  4.       global $array_lang;
  5.       echo $array_lang['hello'].' '.$prenom;
  6.   }
  7. ?>


 
Pour le référencement, faut juste voir pour un peu de réécriture d'URL plutôt qu'avoir ?lang=fr ...
 
Il n'y a pas de *meilleure* solution, il faut que tu arrives à trouver laquelle t'es plus pratique, laquelle te permet la maintenance la plus simple ...
Point de vvue référencement


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1743354
cvb
Posté le 09-06-2008 à 10:18:19  profilanswer
 

Merci beaucoup pour ta réponse :)
Je vais voir ça :)

n°1743365
soju
One shot !
Posté le 09-06-2008 à 10:31:12  profilanswer
 
n°1743546
vanadium
N° Atomique : 23
Posté le 09-06-2008 à 16:09:53  profilanswer
 

Perso, j'ai une fonction très simple dédiée à la gestion de l'internationalisation :

Code :
  1. <?php echo __('Hello world !') ?>


 
Le fichier de langue français par exemple :  

Code :
  1. $__I18N = array(
  2.   'Hello world !' => 'Bonjour le monde !',
  3. );


 
Suivant la langue définie (fichier de conf, choix utilisateur...), la fonction __($string) renvoie la bonne traduction. L'avantage d'utiliser une clef compréhensible (Hello world), c'est que la lecture et la compréhension des templates est grandement facilitée, et la langue principale du site ne nécessite pas de fichiers de langues.

n°1743833
CyberDenix
Posté le 09-06-2008 à 22:51:42  profilanswer
 

Comme dit précédemment, il n'y a pas de meilleure solution.
 
Je suis plutôt de l'avis de NewsletTux (mais en transformant la variable globale en session, c'est plus joli :P), bien que cela reste un choix personnel.


---------------
Directeur Technique (CTO)
n°1743934
cvb
Posté le 10-06-2008 à 08:17:58  profilanswer
 

Merci à vos tous pour vos réponses :=)
@++
Cvb

n°1743944
vanadium
N° Atomique : 23
Posté le 10-06-2008 à 08:41:34  profilanswer
 

CyberDenix a écrit :

Comme dit précédemment, il n'y a pas de meilleure solution.
 
Je suis plutôt de l'avis de NewsletTux (mais en transformant la variable globale en session, c'est plus joli :P), bien que cela reste un choix personnel.


 
En session ? Ptain t'as pas peur toi  :pt1cable:

n°1744174
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 10-06-2008 à 13:33:56  profilanswer
 

j'ai préféré opter pour globaliser la variable afin de ne pas surcharger les ressources de la Session, si ton tableau comporte une centaine de lignes, ce n'est *pas forcément* dérangeant, mais quand tu as 1500 ou 2000 lignes de traduction ... ça t'augmente la taille de la variable s_SESSION inutilement je trouve.


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1744212
skeye
Posté le 10-06-2008 à 14:36:36  profilanswer
 

NewsletTux a écrit :

j'ai préféré opter pour globaliser la variable afin de ne pas surcharger les ressources de la Session, si ton tableau comporte une centaine de lignes, ce n'est *pas forcément* dérangeant, mais quand tu as 1500 ou 2000 lignes de traduction ... ça t'augmente la taille de la variable s_SESSION inutilement je trouve.


et ça la duplique pour chaque user, bonjour l'économie.[:moule_bite]


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Site Multi-Langues....Comment procéder ?

 

Sujets relatifs
Je recherche des personnes pour créer un site internetProbleme migration sgbd pour site php
Créé une page d'acceuil pour mon site...Creer cookie pour site distant
Site qui lag à l'affichage...problème pour faire une présentation de site
Site d'achat en ligneMulti-utilisateur sur phpmyadmin avec base distinct
mettre un site dans une iframe. "hack"Aide pour cree un site d'achat en ligne
Plus de sujets relatifs à : Site Multi-Langues....Comment procéder ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR