Site Web Multi-langues, comment font-ils ?...

Fermé
NBO - 13 juin 2003 à 10:47
 holblin - 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+
A voir également:

19 réponses

desole une erreur de lien :

http://www.phpdebutant.org/article107.php
5
wAx Messages postés 1596 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 21 novembre 2011 202
13 juin 2003 à 17:29
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 !
3
un lien :

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

Tous passe par du code php : cela me semble assez simple
3
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
27 août 2003 à 13:24
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!
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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.
1
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...
0
lagassat Messages postés 527 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2004 80
13 juin 2003 à 11:20
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"
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
13 juin 2003 à 11:50
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)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
13 juin 2003 à 11:54
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.)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
13 juin 2003 à 12:11
"grave" --> "grâce"
0
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 ???
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
13 juin 2003 à 14:03
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... :-)
0
lagassat Messages postés 527 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2004 80
13 juin 2003 à 14:09
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"
0
Utilisateur anonyme
13 juin 2003 à 14:30
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)
0
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
0
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,
0
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
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
22 oct. 2003 à 09:27
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.
0
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 ....
0
lagassat Messages postés 527 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2004 80
13 juin 2003 à 11:00
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"
-1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
13 juin 2003 à 14:23
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/
-1