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

  FORUM HardWare.fr
  Programmation
  PHP

  solution pour page web multilangage

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

solution pour page web multilangage

n°790221
tomtom41
It's not a bug, it's a feature
Posté le 08-07-2004 à 13:42:20  profilanswer
 

:hello:  
 
quel est selon vous la meilleur méthode pour gérer des pages webs multilangage ?
j'utilise php comme langage.
 
j'ai déjà pensé aux cookies et aux sessions mais j'aimerais quelquechose de plus léger...
 
merci pou votre aide


Message édité par tomtom41 le 08-07-2004 à 13:42:58
mood
Publicité
Posté le 08-07-2004 à 13:42:20  profilanswer
 

n°790226
T509
$job->GetJob(now)
Posté le 08-07-2004 à 13:48:41  profilanswer
 

travailler tes liens
 
page.php?lang=fr&rub=13 que tu peux remplacer par page/fr/13/ ou page-fr-13.php|htm avec de l'url rewriting pour faire plus propre


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°793512
rufo
Pas me confondre avec Lycos!
Posté le 12-07-2004 à 13:22:44  profilanswer
 

Moi, je fais plutôt un include du bon fichier de langue suivant la langue de l'utilisateur (dans mon cas, profil stocké dans une BD). Comem ça, tu peut rajouter autant de langue que tu veux, t'as pas à dupliquer tes pages web (donc ton code) à chaque fois que tu rajoutes une langue... C'est plus facile à maintenir :)

n°794418
pataouet
Posté le 13-07-2004 à 11:03:27  profilanswer
 

Le mieux (à mon avis) c'est de sortir tout le contenu de tes pages dans des fichier xml. Tu gères ensuite la mise en page à l'aide de xsl(t).
 
Ensuite grâce à PHP tu selectiones le fichier xml à utiliser pour ton visiteur.
 
Pour savoir de page en page quel est la langue de ton visiteur (une fois que tu l'as trouvée), c'est quand même mieux d'utiliser un cookie ou un session, au pire, fais passer ta variable dans ton url...
 
Reste la possibilité de retrouver à chaque page la langue parlée par le visiteur, mais je ne vois pas l'interet. Tu peux trouver des infos sur la localisation d'un internaute grâce à son ip, (ce genre de truc est utilisé pour faire de la pub selon les pays !).


Message édité par pataouet le 13-07-2004 à 11:04:48
n°794445
Profil sup​primé
Posté le 13-07-2004 à 11:15:28  answer
 

rufo a écrit :

Moi, je fais plutôt un include du bon fichier de langue suivant la langue de l'utilisateur (dans mon cas, profil stocké dans une BD). Comem ça, tu peut rajouter autant de langue que tu veux, t'as pas à dupliquer tes pages web (donc ton code) à chaque fois que tu rajoutes une langue... C'est plus facile à maintenir :)

:jap: je faisais ca  
 
un array genre
 
$language[0]="bienvenu"
$language[0]="welcome"
 
et ensuite sur la page
 
include ($langue_user."php" );
echo ^$language[0]

n°794493
jagstang
Pa Capona ಠ_ಠ
Posté le 13-07-2004 à 11:42:21  profilanswer
 

je préfère les DEFINE dans un fichier externe. pourquoi utiliser des variables alors que les valeurs sont constantes...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°794669
rufo
Pas me confondre avec Lycos!
Posté le 13-07-2004 à 13:37:32  profilanswer
 

chacal_one333 a écrit :

:jap: je faisais ca  
 
un array genre
 
$language[0]="bienvenu"
$language[0]="welcome"
 
et ensuite sur la page
 
include ($langue_user."php" );
echo ^$language[0]


 
oui, mais sans le tableau : c'est pas très explicite dans le code ce que contient $Tab[0] :( Donc, j'utilise des variables (des defines seraient mieux, c'est vrai) en majuscules pour voir que ce sont des constantes et un fichier par langue. Ex :
Francais.lang.php
$LANG_WELCOME_PAGE_INDEX = "Bonjour";
...
 
English.lang.php
$LANG_WELCOME_PAGE_INDEX = "Welcome";
 
Comem ça, je sais que cette variable via d'un fichier langue et que le message est le message de bienvenue de la page index.php :)

n°794677
jagstang
Pa Capona ಠ_ಠ
Posté le 13-07-2004 à 13:40:23  profilanswer
 

et mes http://fr.php.net/DEFINE alors ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°794733
sub1
Posté le 13-07-2004 à 14:39:05  profilanswer
 

et du coté de gettext? http://www.gnu.org/software/gettext/
c'est pas spécialisé pour ca ?

n°794951
chrono
Ne m'appelez plus Dieu...
Posté le 13-07-2004 à 17:08:47  profilanswer
 

Si le site est pour une personne que tu n'aimes pas, utilise "Reverso"...
 
http://traduction.france3.fr/url/default.asp


Message édité par chrono le 13-07-2004 à 17:09:26
mood
Publicité
Posté le 13-07-2004 à 17:08:47  profilanswer
 

n°795058
herks
Posté le 13-07-2004 à 17:46:30  profilanswer
 

un script qui pourrai t'etre utile
 
http://rv.web-heaven.com/scripts.php

n°795978
rufo
Pas me confondre avec Lycos!
Posté le 15-07-2004 à 08:35:58  profilanswer
 

c'est payant on dirait...

n°795979
simogeo
j'ai jamais tué de chats, ...
Posté le 15-07-2004 à 08:38:02  profilanswer
 

sub1 a écrit :

et du coté de gettext? http://www.gnu.org/software/gettext/
c'est pas spécialisé pour ca ?


 
si, mais c'est un peu lourd :/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°798062
tomtom41
It's not a bug, it's a feature
Posté le 16-07-2004 à 20:47:20  profilanswer
 

bon au final j'ai utilisé les sessions comme ca entre chaque changement de page je conserve bien la langue.

n°798149
RiderCrazy
Posté le 16-07-2004 à 23:55:03  profilanswer
 

tomtom41 a écrit :

bon au final j'ai utilisé les sessions comme ca entre chaque changement de page je conserve bien la langue.

benh y'a une différence entre savoir quelle langue utilise le visiteur (utiliser les sessions en l'occurence) et gérer les différentes langues du site...
Perso, j'y vais à coup de fichiers (un par langue) avec des variables... j'avoue ne pas avoir pensé au define et je pense que c'est surement la meilleure solution (sans passer par un fichier xml qui pourrait être aussi gérable facilement).

n°798168
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-07-2004 à 00:32:10  profilanswer
 

Perso, je fous tout dans une table de la base (codelabel + codelangue)
 
Et je fais une fonction getLabel(codelabel, codelangue)
 
Avantage :
1) Si a un moment je décide de changer la façon de stocker/retrouver les libellés, j'ai juste la fonction a modifier, aucune ligne de code à toucher.
2) Dans la fonction, je peux utiliser une langue par défaut si le libellé en question n'est pas traduit dans la langue de l'utilisateur
3) La fonction ramène le code label si aucune traduction n'est trouvée (ni la langue de l'utilisateur, ni la langue par défaut). Comme ça l'utilisateur se trouve face a une page moche, mais si les codes ne sont pas trop nuls, il peut toujours continuer sa navigation.
4) Grace a ce système, je peux ajouter des langues au site sans toucher une ligne de code.
5) Si pour une raison ou pour une autre je veux afficher un libellé dans une langue précise, il suffit qu'au lieu de passer mon cookie en paramètre à la fonction, je passe une langue en dur (ou issue d'un autre endroit). Je conserve alors dans la table des libellés une cohérence de la langue et j'évite les doublons inutiles.
6) Les appels a la fonction contenant à la fois le code du libellé et de la langue, le code est tout a fait lisible, et on sait exactement ce qui va s'afficher sans surprise possible.

n°798170
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-07-2004 à 00:34:00  profilanswer
 

Le seul inconvénient à mon système pourrait etre la rapidité du code, mais je n'ai jamais remarqué de ralentissement notable lié à ce système.

n°798171
RiderCrazy
Posté le 17-07-2004 à 00:35:13  profilanswer
 

Arjuna a écrit :

Perso, je fous tout dans une table de la base (codelabel + codelangue)
 
Et je fais une fonction getLabel(codelabel, codelangue)
 
Avantage :
1) Si a un moment je décide de changer la façon de stocker/retrouver les libellés, j'ai juste la fonction a modifier, aucune ligne de code à toucher.
2) Dans la fonction, je peux utiliser une langue par défaut si le libellé en question n'est pas traduit dans la langue de l'utilisateur
3) La fonction ramène le code label si aucune traduction n'est trouvée (ni la langue de l'utilisateur, ni la langue par défaut). Comme ça l'utilisateur se trouve face a une page moche, mais si les codes ne sont pas trop nuls, il peut toujours continuer sa navigation.
4) Grace a ce système, je peux ajouter des langues au site sans toucher une ligne de code.
5) Si pour une raison ou pour une autre je veux afficher un libellé dans une langue précise, il suffit qu'au lieu de passer mon cookie en paramètre à la fonction, je passe une langue en dur (ou issue d'un autre endroit). Je conserve alors dans la table des libellés une cohérence de la langue et j'évite les doublons inutiles.
6) Les appels a la fonction contenant à la fois le code du libellé et de la langue, le code est tout a fait lisible, et on sait exactement ce qui va s'afficher sans surprise possible.

ta fonstion getLabel fait un accés à la base à chaque fois ? à partir d'un moment ça devient pas un peu lourd (en ressources) ? Enfin, je dit ca comme ça, ça doit être jouable pour certains types de site
 
Edit: [:grilled] t'as répondu avant que je donne ma question [:xp1700]


Message édité par RiderCrazy le 17-07-2004 à 00:36:10
n°798173
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-07-2004 à 00:38:25  profilanswer
 

Chose notable aussi... Avec une interface toute simple, je laisse la possibilité au client de mettre à jour lui-même les textes de son site, sans nécessiter la moindre connaissance informatique. Ceci n'est possible qu'avec le XML, et encore, ça nécessite une code plus compliqué, et il y a un nombre incalculable de limitations par rapport a mon système (points 1, 2, 3, 5 et même le 6). Sans parler des performances, le parsing d'un fichier XML est une horreur comparé à la lecture d'une table indexée, surtout si le volume des textes devient important.


Message édité par Arjuna le 17-07-2004 à 00:38:50
n°798178
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-07-2004 à 00:40:47  profilanswer
 

RiderCrazy a écrit :

ta fonstion getLabel fait un accés à la base à chaque fois ? à partir d'un moment ça devient pas un peu lourd (en ressources) ? Enfin, je dit ca comme ça, ça doit être jouable pour certains types de site
 
Edit: [:grilled] t'as répondu avant que je donne ma question [:xp1700]


Bah au départ, quand un collègue a commencé à faire ça, j'ai été horrifié. Pourtant, on n'a jamais remarqué le moindre problème avec ce système. Je bosse en ASP avec généralement SQL Server et une connection OLEDB. Ce type de connection est réputé très rapide, mais comparé à PHP/MySQL je ne sais pas ce que ça vaut, je doute que ce soit meilleur. Deplus, on n'utilise aucune optimisation stype chargement de la table en mémoire comme c'est possible avec MySQL.

n°799137
DjMerguez
Posté le 19-07-2004 à 02:10:31  profilanswer
 

Il y a le Accept-Language en HTTP, aussi.

n°799943
Arjuna
Aircraft Ident.: F-MBSD
Posté le 19-07-2004 à 20:53:32  profilanswer
 

DjMerguez a écrit :

Il y a le Accept-Language en HTTP, aussi.


Moi mon PC il dit que je parle en anglais, donc c'est une solution que ne marche pas toujours.
 
Notamment en entreprise, on utilise souvent des softs américains codés avec les pieds qui partent du principe qu'on est configuré en américain sinon ça plante.
 
Du coup je passe systématiquement les paramètres de Windows en américain, et ça comprends la langue. Là où je bosse c'est encore plus simple, tous les softs utilisés sont en versions américaines et on ne peux pas changer les paramètres.
 
Bref, faire une détecter sur le acceted_language du HTTP n'est pas forcément très heureux.

n°799946
simogeo
j'ai jamais tué de chats, ...
Posté le 19-07-2004 à 20:59:22  profilanswer
 

Arjuna a écrit :

Moi mon PC il dit que je parle en anglais, donc c'est une solution que ne marche pas toujours.


 
en l'occurence le serveur web il s'en fout que ton pécé parle anglais ... ce qui l'intéresse c'est de savoir quelle langue parle ton navigateur web !


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°800453
[IQS]Krust​y
Posté le 20-07-2004 à 11:17:30  profilanswer
 

Gettext, une fois que t'as compris ca va tout seul

n°800455
simogeo
j'ai jamais tué de chats, ...
Posté le 20-07-2004 à 11:18:37  profilanswer
 

[IQS]Krusty a écrit :

Gettext, une fois que t'as compris ca va tout seul


 
ben en choisissant gettext on perd en portabilité aussi :/ ( car tt les hebergeurs ne le propose pas il me semble )


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°801236
Arjuna
Aircraft Ident.: F-MBSD
Posté le 20-07-2004 à 20:43:41  profilanswer
 

simogeo a écrit :

en l'occurence le serveur web il s'en fout que ton pécé parle anglais ... ce qui l'intéresse c'est de savoir quelle langue parle ton navigateur web !


:heink: Généralement le navigateur utilise la langue du PC, ce qui est le paramètre le plus probable...
 
Y'a peut-être 1% des utilisateurs d'internet qui savent que leur navigateur a ce paramètre, et à tout casser le double qui savent que l'OS aussi a ce paramètre. Faut pas compter la dessus pour avoir des informations fiables.
 
Parceque même si la majeure partie des gens utilisent des OS/Navigateur dédiés à leur pays (donc qui parlent leur langue) une grande partie travaille tout de même avec des systèmes étrangers.
 
Sans parler du roumain qui va venir sur ton site... Quand t'as un code langue = RO tu fais quoi ? Je doute que ton site prenne en charge le roumain. A ce moment t'es obligé de passer par le système classique de personalisation avec une langue par défaut.
Idem pour les pays multi-lingues... Un belge aura pas défaut son navigateur qui acceptera le flamand et le français. Comment choisir lequel afficher ?


Message édité par Arjuna le 20-07-2004 à 20:51:09
n°801265
T509
$job->GetJob(now)
Posté le 20-07-2004 à 21:12:47  profilanswer
 

Si c'est pour identifier le pays du visiteur, il y a la base ip-to-country. Ensuite, il faut gérer les pays avec plusieurs langues officielles (Belgique, Suisse, ...) et les exceptions.
 
En y ajoutant les paramètres de langue du navigateur, il y a moyen de faire quelque chose de correct. De toutes les façon, il y aura toujours un cas particulier qui ne fonctionnera pas => config par défaut


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°801281
Arjuna
Aircraft Ident.: F-MBSD
Posté le 20-07-2004 à 21:31:54  profilanswer
 

T509 a écrit :

Si c'est pour identifier le pays du visiteur, il y a la base ip-to-country. Ensuite, il faut gérer les pays avec plusieurs langues officielles (Belgique, Suisse, ...) et les exceptions.
 
En y ajoutant les paramètres de langue du navigateur, il y a moyen de faire quelque chose de correct. De toutes les façon, il y aura toujours un cas particulier qui ne fonctionnera pas => config par défaut


Dans ce cas, config par défaut pour tous, et l'utilisateur choisi sa langue via une interface directement dispo depuis la HP.
 
Exemple basique :
L'an dernier, je suis allé au Japon. Là-bas, je suis souvent allé dans un cyber-café coréen... Donc une machine coréenne située au japon, j'imagine même pas ce que va me ressortir ton système.
 
Une chose est sûr, quand je suis allé sur hotmail pour lire mes mails, j'étais ravi de voir qu'il était en anglais.

n°801286
T509
$job->GetJob(now)
Posté le 20-07-2004 à 21:44:41  profilanswer
 

C'est bien ce que je dis, si la langue n'est pas supportée, on utilise la config par défaut. Cela peut être le français, l'anglais ou autre selon ce que l'on veut.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°801499
jagstang
Pa Capona ಠ_ಠ
Posté le 21-07-2004 à 09:47:20  profilanswer
 

T509 a écrit :

Si c'est pour identifier le pays du visiteur, il y a la base ip-to-country. Ensuite, il faut gérer les pays avec plusieurs langues officielles (Belgique, Suisse, ...) et les exceptions.
 
En y ajoutant les paramètres de langue du navigateur, il y a moyen de faire quelque chose de correct. De toutes les façon, il y aura toujours un cas particulier qui ne fonctionnera pas => config par défaut


 
+1. de plus, tout les grand sites de compagnies internationales font ainsi. une simple combo qui redirige vers le site en question.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°801682
deliriumtr​emens
sic transit intestinal...
Posté le 21-07-2004 à 11:47:04  profilanswer
 

Arjuna a écrit :


 
 
Sans parler du roumain qui va venir sur ton site... Quand t'as un code langue = RO tu fais quoi ? lequel afficher ?


 
Ben c'est quand même pas compliqué, moi qui fais des sites helvètes qui doivent donc souvent gérer nos chères 3 langues nationales, je pratique la détection de la langue du http_accept_language parce que ça me paraît un (tout) petit plus pour les utilisateurs, et si langue!=en ou fr ou it ben je mets la langue par défaut qui est le français parce que j'en ai décidé ainsi...
 
Brèfles, on s'adapte à ses besoins, pas de solution unique pour le multilangue !

n°801849
jagstang
Pa Capona ಠ_ಠ
Posté le 21-07-2004 à 14:09:14  profilanswer
 

en Suisse il y a 4 langues nationales :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°801987
deliriumtr​emens
sic transit intestinal...
Posté le 21-07-2004 à 15:53:13  profilanswer
 

JagStang a écrit :

en Suisse il y a 4 langues nationales :D


 
La quatrième langue, le romanche, ne concerne que des gens habitants dans un canton reculé et montagnard où les ordinateurs ne sont pas encore arrivés. :na:

n°802004
jagstang
Pa Capona ಠ_ಠ
Posté le 21-07-2004 à 16:00:52  profilanswer
 

deliriumtremens a écrit :

La quatrième langue, le romanche, ne concerne que des gens habitants dans un canton reculé et montagnard où les ordinateurs ne sont pas encore arrivés. :na:


fais gaffe je viens aussi de ce genre de canton  :kaola:  
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°802022
deliriumtr​emens
sic transit intestinal...
Posté le 21-07-2004 à 16:09:49  profilanswer
 

Yapadehonte

n°802053
kwa29
Kwa29 @ l'ouest
Posté le 21-07-2004 à 16:17:15  profilanswer
 

Pour moi le choix est simple : C du zope accouplé a un plone ou autre. Les products sont deja i8niser

n°802109
jagstang
Pa Capona ಠ_ಠ
Posté le 21-07-2004 à 16:42:14  profilanswer
 


au contraire c'est une fierté


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°802134
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-07-2004 à 16:49:57  profilanswer
 

Arjuna a écrit :


Idem pour les pays multi-lingues... Un belge aura pas défaut son navigateur qui acceptera le flamand et le français. Comment choisir lequel afficher ?


 
En général on a soit fr-be/fr soit nl-be/nl, mais je n'ai pas encore rencontré le cas où les deux sont configrés.
En plus dans les sociétés en Belgique la plupart du temps Windows et tous les softs sont en anglais, configuré pour la Belgique, mais il arrive que ce soit belgium-dutch pour un francophone ou l'inverse.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°802463
Arjuna
Aircraft Ident.: F-MBSD
Posté le 21-07-2004 à 21:42:56  profilanswer
 

JagStang a écrit :

+1. de plus, tout les grand sites de compagnies internationales font ainsi. une simple combo qui redirige vers le site en question.


 
ha bon ?  
 
http://www.ge.com
 
Pourtant... Y'a pas forcément besoin de présenter la plus grosse société au monde ;)
 
Ceci-dit, en effet, on trouve ce système sur les principaux sites grand public ;)

n°802465
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-07-2004 à 21:44:15  profilanswer
 

On doit voir quoi sur ce site ? J'ai le site en anglais alors que mes préférences sont, dans l'ordre : fr-be, fr, en.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  solution pour page web multilangage

 

Sujets relatifs
changement de page stylé[JS] Sauvegarder une page
méthode javascript pour detecter un redimmensionnement de la page ?Système de calques sur une page web
[ASP - HTML - JS] Probleme d'impression d'une page web(Javascript) Proteger son code source, Script Encoder...la solution?
Pouvoir afficher ma webcam sur une page webDésactivé le son du rafraichissement d'une page sur internet explorer.
[PHP]script autonome et rafraichissement de page distante[VBA] Insérer numéro de page dans tableau [RESOLU]
Plus de sujets relatifs à : solution pour page web multilangage


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