Posez votre question Signaler

Site Web Multi-langues, comment font-ils ?... [Fermé]

NBO - Dernière réponse le 17 mai 2010 à 10:45
Bonjour à tous,
Est-ce que quelqun pourrait m'expliquer comment faire pour développer un site multi-langues. Biensûr, pas uniquement le site disposant de page en anglais et en français, mais un site dynamique du style vacances.com, ou lorsque l'on clique sur la langue, cela nous donne l'impression que chaque mot est traduit.
Je pense que chaque phrase ou mot est enregistré dans une base de données, et suivant la langue selectionnée on affiche le mot correspondant.
Ex:

Table
--------------
house FR
maison AN

si langue = FR on affiche "house"

C'est ça ????? (ça parait assez lourd non ?)
Merci pour votre aide, vos astuces, exemples....
A+
Lire la suite 
Annonces
 
moins plus
Réponse
+3
moins plus
Chez nous, c un peu différent.

On a un fichier texte avec toutes les phrases présentes dans le site ou tous les mots

Un mot ou phrase ou expression par ligne du fichier texte

et on traduit ce fichier. On a donc français.txt, anglais.txt etc etc
dans le site, on sait qu'il doit inserer la ligne n°x à tel ou tel endroit
on a une variable, la langue
langue="français"
langue="anglais"
etc

et on ouvre:

open(langue&".txt") pour aller chercher la ligne n°X

TTBACF !

Annonces
 
moins plus
Réponse
+3
moins plus
un lien :

http://www.phpdebutant.org/article48.php

Tous passe par du code php : cela me semble assez simple

Réponse
+1
moins plus
Salut, pas trop le temps de detailler la, mais ce qui se passe ici:
On a un logiciel (noyau C++, interface VB) et on a un fichier de configuration en XML avec le nom de tous les messages, et le texte correspondant (menu, MsgBox, InputBox, Bouton,...). Il suffit de traduire le fichier XML pour faire changer le logiciel de langue...
C'est juste pour donner une idee...

.  .
\_/
        Sauvez Maily! Mangez Castor!

Réponse
+1
moins plus
Bonjour,

1ere option:
Administration - > texte anglais et français pour chaque page éditable avec tinymce ou autre éditeur en ligne, sauvegarder dans une db mysql. À l'affichage ont set une langue par defaut $lang="fr";
ont affiche le texte if($lang=="fr"){Affiche texte francais}if($lang=="en"){Affiche texte anglais}
N.B. le if est traiter plus rapidement que le switch case.
Ont peut sauvegarder la langue de préférence dans un cookie comme ca l'utilisateur ouvre le site et arrive dans la langue qu'il désire. Ah j'oubliais, lien anglais et français <a href="<?php echo $_SERVER['PHP_SELF']; ?>?lang=fr">Français</a> <a href="<?php echo $_SERVER['PHP_SELF']; ?>?lang=en">English</a>
Si vos pages contiennent d'autre variable, ne pas oublier de les passer dans les liens ci-dessu!
Pour optimiser à l'affichage ne pas mettre de SELECT * mieux vaut écrire tout les champs de la table.

2e Option: est décrite plus bas, chaque ligne d'une page texte = un texte du site.
Plus complexe à mettre en place, mais plus pratique dans le cas de plusieurs langue.

Réponse
+0
moins plus
Merci pour ta réponse lagassat,
mais moi ce qui m'intéresse c'est plus le coté dynamique, si tu vas voir vacances.com (j'fais pas de la promo, mais c'est exactement ce que je souhaiterai faire) et bien,je ne pense pas qu'ils aient créés une page pour chaque langue, mais je pense qu'il joue avec des enregistrements en plusieurs langues dans les tables...

Réponse
+0
moins plus
Bah c possible, mais ca m'etonnes quand ayant autant de donner à traiter, ils arrivent à afficher une page en moins de 2s. ou alors c que c vraiment bien fait...

j'ai hâte de voir si qq'un a la réponse. ;-)
"2 choses sont infinies : l'univers et la betise humaine
bien que en ce qui concerne la 1ere je n'ai pas encore de certitude absolue"

Réponse
+0
moins plus
Salut.
Je bosse sur un site de commerce électronique.
On fonctionne en français, allemand, anglais et espagnole.

Pour la partie .Net de notre site, on utilise les fichiers de ressource .Net.
(.Net possède un système de gestion des langues).
Chaque message susceptible d'être affiché à l'écran possède un identifiant.


Pour le reste du site (pas en .Net), on a également 1 identifiant par message, avec une moulinette perl qui créé les différentes versions du site automatiquement en fonction des pages de base et de la liste des traductions.
(C'est un bête rechercher/remplacer sur des tags HTML spécifiques contenant les identifiants des messages).

Quand aux données, c'est encore un autre boulot... (le catalogue est également multilangues)

Réponse
+0
moins plus
Pour résumer notre cas:

La partie .Net est dynamique (c'est le serveur .Net qui sélectionne les messages dans la bonne langue pour générer la page ; c'est donc exactement la même URL pour une même page dans différentes langues. C'est uniquement grave au cookie de session de l'utilisateur qu'il connait sa langue).

Pour la partie non .Net, là c'est une arborescence complète du site par langue (/fr/... /de/... etc.)

sebsauvage 33290Messages postés mercredi 29 août 2001Date d'inscription ModérateurStatut 26 mars 2015Dernière intervention - 13 juin 2003 à 12:11
"grave" --> "grâce"
Réponse
+0
moins plus
Merci à tous pour ces infos,
Apparemment il faut que j'me mette au .Net alors...
Si quelqun à des infos ou ressources dans ce domaine, je suis prenneur.
Sinon, y'a vraiment pas moyen de gérer cela avec des tables mysql ???

Réponse
+0
moins plus
Oh si ça peut très bien se faire avec mysql.

Il faut juste que dans ton code (php, asp ou autre), tu effectue une petite requête SQL pour aller chercher le bon message.
(On a aussi une toute petite partie du site où on va pêcher les messages en base de données).

Tu pourrais par exemple te faire une fonction GetTranslation(identifiant) qui lirai la langue dans le cookie, irai chercher le message correspondant à l'identifiant et la langue dans la base de données et le renvoie.

C'est une des solutions, mais tu peux en imaginer d'autres... :-)

Réponse
+0
moins plus
re,

Pour rester dans l'esprit de stocker le contenu dans une bdd mysql, ça ne risque pas d'engendre des temps de réponses trop long s'il faut aller chercher tous les textes ?

En clair, avec un systeme comme ça, peut-on quand même créer un site rapide ?

"2 choses sont infinies : l'univers et la betise humaine
bien que en ce qui concerne la 1ere je n'ai pas encore de certitude absolue"

Réponse
+0
moins plus
Salut à tous,
J'avais un super tutoriel avec php/mysql, mais il semblerait que le site est en rade... Dommage... http://www.phpdebutant.org C'est dans le menu de dropite qu'il faut chercher... :o)

Kalamit,
Je suis un concept ! :o)

Réponse
+0
moins plus
mouarf en cherchant qq chose de tout a fait différent je suis tombé sur ça alos j'ai pensé à vous!j'ai pas tous lu mais rien que le titre me fait dire que tu trouveras la réponse à ta question
http://www.asp-php.net/tutorial/asp-php/appli_multilingue.php

bonne chance

LMCT

j'ai touché le fond
maintenant je creuse

Infomagic- 22 oct. 2003 à 03:20
Bjr,

C'est de la balle ce site ;op
Je l'ai trouvé aujourd'hui et c'est exactement ce que je cherchais sauf que moi je développe en CFML/Oracle.

Bye,
Réponse
+0
moins plus
bonjour à tous

je me trouve dans le meme cas que vous sauf que pour moi impossible faire de l'Oracle, du .Net ou du PHP puisqu'il s'agit d'un mandat précis (travail de diplome pour mon école...).
J'ai à ma disposition Java...
J'avais aussi pensé à tout mettre dans une BD et afficher tout le site grace à JSP. Mais ceci me paraît très lourd.

Ca m'aiderait beaucoup si vous aviez une méthode plus simple et plus "jolie".

merci pour vos infos

Julien

Réponse
+0
moins plus
Pour Java:
Il me semble avoir vu des classes spécialisées pour l'internationalisation.
Essai de recherche un peu dans l'API Java: je suis sûr qu'il doit y avoir ce qu'il faut.

Réponse
+0
moins plus
Pour mon avis je pense que la solution du define est une bonne solution :
http://www.phpdebutant.org/article107.php

Cependant la version mysql est un peu mieux d'après moi ...
Pour éviter des problèmes de temps sur la version mysql ... il suffi d'utiliser un système de cache !

Il existe aussi des systèmes clé en main permettant de faire du multi-langue avec par exemple du xml ... cette solution est sans danger dans le sens ou n'importe qui peut traduire il ne pourra pas inclure de faille de sécurité ... vous n'aurez donc pas besoin de relire son travail fait en russe ....

Réponse
-1
moins plus
Salut,

Euh bah moi les sites que j’ai vu, il y avait un contenu en francais, un contenu anglais, etc…

Ex : tu as un texte que tu met dans une page html. Tu traduis le texte dans chacune des langues, et tu crée les pages : page1_fr.htm, page1_uk.htm, page1_de.htm, et selon que l’utilisateur choisis telle ou telle langue, tu charges la page qui corresponds…

mais c'est vrai qu'il y a peut être d'autres méthodes.

Voilà
"2 choses sont infinies : l'univers et la betise humaine
bien que en ce qui concerne la 1ere je n'ai pas encore de certitude absolue"

Réponse
-1
moins plus
En clair, avec un systeme comme ça, peut-on quand même créer un site rapide ?

ça risque en effet d'avoir un impact important, surtout avec un serveur aussi léger sur mySQL
(J'ai cru lire que mySQL ne supporte pas les accès concurrents, c'est vrai ???)

Il vaut mieux prendre des serveurs plus solides comme PostgreSQL ou Oracle, donc les performances sont bien meilleures.
http://advocacy.postgresql.org/

Ce document intitulé «  Site Web Multi-langues, comment font-ils ?...  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.