Localisation PHP, quelle methode ?

Localisation PHP, quelle methode ? - PHP - Programmation

Marsh Posté le 12-05-2006 à 10:16:00    

Bonjour à tous ;)
 
Je souhaiterais demander aux spécialistes quelle méthode est préférable dans le cas d'une localisation php. Je pense que l’idée d’un fichier langage externe est à retenir (ex : /lang/fr.php   /lang/us.php ) mais j’hésite entre les différents moyens de remplir les variables afin que cela soit le plus optimisé et rapide possible. Pour info, j’ai installé eaccelerator (anciennement mmcache) sur le serveur.
 
1) La méthode Constante :
 

Code :
  1. define("txtHello","Bienvenue sur le site" ) ;


2) La méthode variable
 

Code :
  1. $txtHello =  "Bienvenue sur le site";


 
3)La méthode Array

Code :
  1. $loc = array("txtHello"=> "Bienvenue sur le site’,’txtSub’ => ‘Vous etes ici chez vous" ) ;


 
Merci à vous ! ;)

Reply

Marsh Posté le 12-05-2006 à 10:16:00   

Reply

Marsh Posté le 12-05-2006 à 10:27:01    

j'ai un site en 6 langues  
je stockes les phrases dans une BDD  
 
Ce choix est plus couteux en ressource ( encore que je ne suis pas sur qu'il y ait bcp d'ecart ) , mais m'a permis de mettre en place une interface de saisie et de modification des phrases


---------------

Reply

Marsh Posté le 12-05-2006 à 10:31:52    

Et tu stockes comment les infos dans ta base ? Au niveau des colonnes et cie ? Tu fais juste une seule requete au chargement de ta page ?

Reply

Marsh Posté le 12-05-2006 à 10:34:13    

flo850 a écrit :

j'ai un site en 6 langues  
je stockes les phrases dans une BDD  


 
Bonjour,
excusez-moi de m'imiscer, mais je dois faire un site multilangues et j'aimerais savoir, à moins de connaître les langues ou des polyglotes, si les sites de traduction in-line sont vraiment fiables puisque ceux-ci font du mot à mot, y-a-t-il un autre moyen?
 
Merci


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 12-05-2006 à 10:39:45    

tania_j a écrit :

Et tu stockes comment les infos dans ta base ? Au niveau des colonnes et cie ? Tu fais juste une seule requete au chargement de ta page ?


 
ma bdd a la structure suivante :  
id
CodePhrase ( ce qui correspond a ton "txtHello" )
idLangue
PhraseTraduite ( encodée en UTF8 )
 
Je fais un appel par phrase
Et j'ai mis un gros cache au niveu du serveur mysql  
 

oualad a écrit :

Bonjour,
excusez-moi de m'imiscer, mais je dois faire un site multilangues et j'aimerais savoir, à moins de connaître les langues ou des polyglotes, si les sites de traduction in-line sont vraiment fiables puisque ceux-ci font du mot à mot, y-a-t-il un autre moyen?
 
Merci


Je passe par des traducteurs 'humains' , sinon, impossible d'avoir un résultat correct


---------------

Reply

Marsh Posté le 12-05-2006 à 15:41:28    

flo850 a écrit :

ma bdd a la structure suivante :  
id
CodePhrase ( ce qui correspond a ton "txtHello" )
idLangue
PhraseTraduite ( encodée en UTF8 )
 
Je fais un appel par phrase
Et j'ai mis un gros cache au niveu du serveur mysql  


 
 :ouch:  Sur un gros portail; qui necessite de traduire non-seulemen des mots mais aussi l'interface; ca doit faire au moins 100 appels par page sur la base mysql.. c'est certainement facile à gérer par la suite mais niveau optimisation je pense que dans mon cas ca aura ses limites.
 
Quitte à faire un truc géneré par la db; pourquoi ne pas faire un script qui genere le fichier de langues grace à des entrées mysql ? Dans ce cas la; on retourne sur ma question initiale.. array, ou define ?   :sweat:

Reply

Marsh Posté le 12-05-2006 à 16:09:59    

le site en question c'est environ 5/6000 visiteurs par jour , sur un xeon 2.4Ghz
mais c'est vrai qu'il n'y a pas bcp de texte par page


---------------

Reply

Marsh Posté le 12-05-2006 à 16:40:27    

personnellement, j'utilise des classes de langues, toutes basées sur la même interface (donc garantissant que t'oublieras rien), stockées dans des fichiers textes. Le jour où tu veux rajouter une langue, t'as juste à remplacer ce qui est entre guillemets, même un non-développeur peut le faire.
Exemple :  

Code :
  1. interface Langue
  2. {
  3.     public function hello ();
  4. }
  5. class Francais implements Langue
  6. {
  7.     public function hello()
  8.     {
  9.         return 'Bonjour';
  10.     }
  11. }
  12. class Anglais implements Langue
  13. {
  14.     public function hello()
  15.     {
  16.         return 'Hello';
  17.     }
  18. }


En tout début de visite tu instancie la classe qu'il faut, et t'as plus qu'à faire les appels par la suite, sans te préoccuper de quelle langue il s'agit.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed