IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème site multi langues


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut Problème site multi langues
    Bonjour,
    Je développe un site et j'aimerais que certaines pages soient disponibles en plusieurs langues. Pour l'instant l'utilisateur peut créer une annonce en francais à l'aide d'un formulaire constitué majoritairement de listes déroulantes. J'enregistre les données dans une base de données et je génère les pages dynamiquement. Maintenant j'aimerais traduire les pages d'annonces dans d'autres langues sans que l'utilisateur est besoin de faire quelque chose.

    Je ne vois pas du tout la méthode que je dois adopter pour faire ca.

    Pouvez vous m'aider? N'hesitez pas à me demander des precisions

    Dolf

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Dans ta base tu as tes données en français?
    Dans ce cas il suffit de rajouter un champ "langue" et d'y mettre pour chaque entrée ton langage. L'utilisateur choisit par exemple Allemand et toi tu traduis ça dans ta clause WHERE: langue = 'Allemand'.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Anduriel
    Dans ta base tu as tes données en français?
    Dans ce cas il suffit de rajouter un champ "langue" et d'y mettre pour chaque entrée ton langage. L'utilisateur choisit par exemple Allemand et toi tu traduis ça dans ta clause WHERE: langue = 'Allemand'.
    Dans ma base toutes les valeurs de chaque champ sont en français. Je comprends la clause WHERE langue = 'Allemand' seulement moi une annonce qui est publiée en francais je veux que l'utilisateur puisse également la traduire en anglais ou en allemand par exemple. Seulement dans ma base les données sont en francais et pas en allemand et la je bloque... je n'ai peut etre pas bien compris ce que tu voulais me dire. Si par exemple la valeur du champ est voiture comment je le fais correspondre à la valeur car en anglais?

    Dolf

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je vois donc que ça (peut être qu'il y a plus simple): tu regroupes tous les mots de l'annonce avec un explode() (ou un regexp c'est mieux, sinon tu vas te retrouver avec de la ponctuation).

    Ensuite, pour chaque mot, tu trouves son équivalent dans la base avec SELECT mot_allemand WHERE mot_francais = 'ton_mot' en imaginant ta table avec un champ pour chaque langue.

    A chaque fois tu comptetes ta noucelle variable d'annonce et à la fin tu l'affiches.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Ok merci pour ton aide je vais étudier ta réponse avant de me lancer car ca represente beaucoup de travail tout de meme
    Merci
    Dolf

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    C'est sur que si tous les mots sont pas prédéfinis et que tu veux rentrer tous les mots du dictionnaire...
    Sinon utilise les traducteur en ligne non?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Anduriel
    C'est sur que si tous les mots sont pas prédéfinis et que tu veux rentrer tous les mots du dictionnaire...
    Sinon utilise les traducteur en ligne non?
    En fait dans mes formulaires j'ai beaucoup de liste déroulantes du genre :
    Liste 1 : couleur (marron, bleu, vert...)
    Liste 2 : pays (france, allemagne...)
    ...

    Ce qui pour l'instant me pose probleme c de faire la correspondance entre toutes les langues. Est ce qu'il faut que je cree une table avec toutes les listes et toutes les valeurs pour chaque langue? Comme je te l'ai dit je n'ai jamais fait ca et je ne suis pas sure de la methode a adopter. Pour linstant mes pages d'annonces sont du genre:
    ...fr/annonce.php?idannonce=3873988
    Donc je voudrais creer une page
    ...en/ad.php/idannonce=92892 pour la version anglaise par exemple

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    J'ai pas compris ton exemple.
    Sinon comment oragnises-tu ton annonce? Est-ce du texte libre ou des mots à choisir? Si c'est vraiment des mots à sélectionner je ferai une table avec comme champs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id => int(11) auto_increment
    motfrancais => varchar
    motallemand => varchar
    motanglais => varchar
    motiltalien => varchar

  9. #9
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    je crois que ce que t'as proposé Anduriel est la meilleure solution sauf si tu veux rentrer dans des trucs ultra sophistiqué, bein dans ce cas t'as pas d'autres choix que de passer par la traduction en ligne.

    t'as dis :
    à l'aide d'un formulaire constitué majoritairement de listes déroulantes
    c'est quelque chose qui facilitera bcp ton travail. Alors pour traduite t'as deux solution :
    - une table pour chaque liste comme précisé par Anduriel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id => int(11) auto_increment
    motfrancais => varchar
    motallemand => varchar
    motanglais => varchar
    motiltalien => varchar
    - Ou, et c'est ce que je prefere personnellement, une seule table pour tous, mais avec un champs supplementaire pour preciser la liste dont il s'agit, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    id => int(11) auto_increment
    liste ==> smallint
    motfrancais => varchar
    motallemand => varchar
    motanglais => varchar
    motiltalien => varchar
    c'est tu comprend pas quelque chose, tu n'as qu'à poser la question!

    Bon courage

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Points : 163
    Points
    163
    Par défaut
    J'aurais pour ma part choisi une autre solution :

    Table "annonces"
    |---------------
    |- id_annonce
    |- id_utilisateur
    |- id_date_annonce
    |- id_date_derniere_modif
    etc. (toutes infos concernant l'annonce niveau administratif si je puis dire)

    Table "annonces_ml"
    |------------------
    |- id_annonce_ul
    |- id_annonce
    |- lang
    |- chapeau
    |- texte
    etc. (toutes infos à être traduites)

    Table "user"
    -----------
    |- id_user
    etc. (toutes infos user)

    Par expérience, c'est mieux niveau évolutivité, etc.

    Après, avec les jointures, on arrive à retrouver les bonnes infos, savoir en quelles langues existe l'annonce, trouver dans le compte client les traductions encore possibles à faire, etc.

Discussions similaires

  1. url d'un site multi-langues
    Par maa dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/04/2007, 17h58
  2. Utilisation XML/XSL pour un site multi langues
    Par bigsister dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 22/01/2007, 17h36
  3. Site multi langue
    Par didarmor dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/12/2006, 23h42
  4. Réponses: 12
    Dernier message: 04/11/2005, 17h28
  5. Architecture d'un site multi-langues
    Par seben dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 25/09/2005, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo