Salut,
Je dois réalisé un site en PHP en plusieurs langue.
Quel technique est selon vous la meilleur et la plus professionnel a utilise???
XML?
plusieurs page?
javascript?
autres???
merci
Version imprimable
Salut,
Je dois réalisé un site en PHP en plusieurs langue.
Quel technique est selon vous la meilleur et la plus professionnel a utilise???
XML?
plusieurs page?
javascript?
autres???
merci
Les techniques les plus propres (dans le sens plus facile à maintenir) sont, je pense, XML et gettext. Mais je pense que gettext doit être plus performant.
Julp.
Salut
La solution la plus rapide utilise gettext mais la plus maléable utilise des fichiers de langue et/ou des tables de langue dans la base de données.
Le problème de gettext est que toute modification de la langue par défaut doit être répercutée dans toutes les traductions, alors que les traductions sont indépendantes.
Bonsoir
Il existe une autre technique qui semble être un standard en la matière, soit le TMX.
J'ai lu, c'est vrai, un peu trop en diagonale mais celà m'a semblé plutôt pertinent et...dans le même temps, costaud aussi.
Titre : Localisation PHP grâce au std TMX
J'aurai dit les langes dans une BDD ou des fichiers, et une variable de SESSION qui garde la langue préféré de l'internaute actuel.
merci, je vais faire quelques test et voir celle qui me correspond le mieux
moi aussiCitation:
MaxooJ'aurai dit les langues dans une BDD ou des fichiers, et une variable de SESSION qui garde la langue préféré de l'internaute actuel.
J'ai mis en route un site spécialisé en philatélie et multilangue avec mes connaissances de "vieux débutant confirmé". Ma solution sont la détection de la langue du navigateur, puis selon la langue utilisée, faire un include du fichier contenant toutes les variables.
Comme le site est en développement, les traductions ne sont pas toutes faites tout de suite. Pour éviter un "trou", j'ai procédé à un double include. Ainsi ce qui n'est pas encore traduit, apparaît en français. Pratique surtout pendant le développement. Le fichier langue est celui qui détermine la langue du navigateur et retourne $lang.
<?
include('langue.txt');
include('60A/messages.FR.inc.php');
include('60A/messages.'.$lang.'.inc.php');
?>
L'avantage est de ne pas avoir à traiter la "langue préféré" et il n'apparait aucun choix de langue pour le visiteur, inutile de l'enregistrer ni dans un cookie, ni dans la bd!
l'adresse du site est www.planchage.france-timbres.net
Pour "forcer" une langue, il suffit de modifier la langue du navigateur comme prioritaire, ce qui en principe est inutile.
Je peux vous donner le code pour déterminer la langue du navigateur. Je l'ai placé comme include et non pas comme texte, j'aurai pu le mettre comme fonction, mais l'effêt est le même. Ainsi lorsqu'on ajoute une langue, il n'y a qu'un seul endroit, le fichier $langue, à compléter, puis placer le fichier $messages de la langue appropriée.
Je ne connais aucune des techniques relatées dans les différentes réponses, la mienne est peut être simpliste, mais terriblement efficace et finalement simple à mettre en oeuvre.
quasi meme chose , qu'on detecte le nav une fois et que l'on stocke l'info ou que l'on verifie à chaque fois.Citation:
Ma solution sont la détection de la langue du navigateur, puis selon la langue utilisée, faire un include du fichier contenant toutes les variables.
Ce qui definit par ex la variable : $langue qui va définir le champs dans lequel il va chercher le texte, si le champs est vide,
$langue = francais
et dans la requetes,
et HOP ...!!! PHP/Mysql , le miracle du contenu dynamique !!!Code:
1
2 SELECT $langue FROM ...
(bon petit miracle, ... en fait pas trés revolutionnaire ...mais ça marche qu'en meme vachement bien !!!...:aie: ) *
PS : Et permet de faire facilement, une plateforme d'admin permettant à des débutants en informatique
par example :
- un correspondant brézilien,
- ou une petite amie qui habite à londre,
mais compétant dans leur domaine
- ou encore un étudiant français au japon
( la trad ou la création de contenu ...)
de faire des mise à jour facilement, et même d'enrichir le site, avec pourquoi pas un petit mail prévenant les autres traducteurs de la création d'un nouveau contenu à traduire...
enfin bon le travail en equipe est presque primordial,trouve des gens sympas pret à te faire ta traduction et ce, de chez eux, et prépare leurs une belle plateforme d'admin,
dernier benefice : moins de boulot pour toi !!!
(après la création de la plateforme bien sure !!! ) :king:
@gretch : Ta solution implique de modifier la structure de données (ajouter/supprimer un champ de table) lorsqu'une langue est ajoutée ou modifiée. Ce n'est généralement pas considéré comme une bonne pratique car elle est peu flexible.
[QUOTE=gretch]quasi meme chose , qu'on detecte le nav une fois et que l'on stocke l'info ou que l'on verifie à chaque fois.
Ce qui definit par ex la variable : $langue qui va définir le champs dans lequel il va chercher le texte, si le champs est vide,
$langue = francais
Juste une précision: Pour moi la différence est énorme: Dans le cas d'un réglage de la langue par défaut, TOUT le texte apparait dans la langue par défaut, alors que dans la manière que j'emploi, Le texte ou les variables non encore traduites apparaissent en langue par défaut et toutes les autres en langue traduite. Celà est particulièrement intéressant lors de la création d'un site en cours de développement.