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 :

[Conception] Site multilingue : problème avec les liens


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut [Conception] Site multilingue : problème avec les liens
    Bonjour,

    Je voudrais faire un site multilingue, j'ai déjà tout en place et ça marche.
    J'ai opté pour la solution de 1 fichier par langue que j'appelle selon ce que l'utilisateur veut.

    Supposons que j'ai le texte suivant : "Bienvenue sur ce forum"
    Dans fichier lang_fr.php :
    $lang['bienvenue'] = 'Bienvenue sur ce forum';
    Dans fichier lang_en.php :
    $lang['bienvenue'] = 'Welcome on this forum';

    Ok pas de problème jusque là... Mais si je veux mettre dans ce texte un lien vers le site developpez.com sur la partie du texte "ce forum" (ou 'this forum' en anglais) comment je dois procéder ?

    1. Je fais ça comme un cochon et je fais une clé de traduction pour "Bienvenue sur" et une autre clé pour "ce forum" ? J'aime pas trop cette solution qui me fait découper mon texte et nuie à la lisibilité je trouve de mon fichier de langue (pas facile quand on veut passer le fichier de langue à qq'un de non informaticien pour qu'il le traduise)

    2. Je mets ma balise <a href> dans mon fichier de langue mais là ça fait cochon aussi, surtout si comme dit précédement je passe le fichier à quelqu'un...

    Comment vous procéderiez vous ?

  2. #2
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Je crois que tu devrais couper ta phrase en deux. la clé "ce forum" pourait être utilisé plus tard dans ton site non?
    Aucune aide par MP, utilisez le forum.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Non pas bon.
    Le lien ne change pas mais c'est où que je vais mettre ma balise <a href> ?
    J'aimerai éviter de le mettre dans mon fichier de langue pour qu'il soit le plus facilement lisible possible pour un non informaticien.
    Si je le mets dans ma page php d'affichage je suis obligé de scindé mon echo du style :
    <? echo $bienvenue; ?><a href="www.developpez.com"><? echo $forum; ?></a> <? echo $suite_du_bienvenu; ?>

    où dans les 3 variables de langues n'ont pas la même valeur dans chacune des langues par exemple. J'aimerai éviter de scinder ma phrase en 3 parties juste à cause d'un lien dans ce texte

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Tu pourrais voir du côté de str_replace() .

    Tu fais donc une fonction avec tous les mots que tu souhaites remplacer (un peu comme du BBcode) et tu remplaces les mots du style Developpez.net par <a href="www.developpez.net">Developpez.net</a> de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tavariable = str_replace('Developpez.net','<a href="www.developpez.net">Developpez.net</a>', $tavariable);
    Bonne journée

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Citation Envoyé par SpiritOfDoc
    Tu pourrais voir du côté de str_replace() .

    Tu fais donc une fonction avec tous les mots que tu souhaites remplacer (un peu comme du BBcode) et tu remplaces les mots du style Developpez.net par <a href="www.developpez.net">Developpez.net</a> de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tavariable = str_replace('Developpez.net','<a href="www.developpez.net">Developpez.net</a>', $tavariable);
    Bonne journée

    Ah oui je n'avais pas pensé à cela
    Mais est ce vraiment possible dans mon cas sachant que developpez.net c'était un exemple, que dans mon cas le texte ne sera pas identique en francais et anglais (ex : 'formulaire d'inscription' qui m'emmène vers le formulaire d'inscription où le texte est différent en anglais)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Pour ton formulaire d'inscription je vois pas vraiment le problème, c'est un lien définit, il suffit de faire ton lien en HTML puis de préciser le texte à mettre entre les balises avec ton script de langage ...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Désolé je ne suis pas assez clair, je vais détailler

    Mon texte à traduire est : "pour vous inscrire, veuillez remplir le formulaire d'inscription et nous retourner les éléments nécessaire pour valider votre inscription"

    J'aurai aimé que cela se trouve dans une et une seule variable dans un soucis de facilité de compréhension de la phrase dans mon fichier de langue.
    Dans ce texte sur "formulaire" je voudrais mettre un lien vers par exemple http://www.monsite.com/formulaire.html

    Je vais avoir dans mon fichier de langue fr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lang['texte'] = "pour vous inscrire, veuillez remplir le <a href='http://www.monsite.com/formulaire.html'>formulaire </a>d'inscription et nous retourner les éléments nécessaire pour valider votre inscription";
    Dans mon fichier en l'équivalent en anglais

    Dans mon fichier php qui affiche l'info
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? echo $lang['texte']; ?>
    Cette solution ne me plait pas pcq j'ai mon tag html dans mon fichier de langue

  8. #8
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    je crois que tu te prends trop la tête. Moi je mettrais le <a href> direct dans le fichier de langue...
    Sinon tu as aussi sprintf !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    define('MON_TEXTE', "c'est par %slà%s")
    echo sprintf(MON_TEXTE, "<a href=''>", "</a>");

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Salut,

    Oui en fait je vais m'orienter vers la solution de mettre directement mes tags html dans mon fichier de langue

    En revanche, certaines personnes choisissent de mettre les traductions directement dans une table où une clé définit la traduction et un champ = une langue. J'ai choisis la méthode par fichier afin de limiter les accès à la base de données... Mais sinon, quel est l'avantage de l'un ou de l'autre ?

  10. #10
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    j'ai suivi le même résonnement que toi. Un accès en BD pour chaque traduc c'est lourd à gérer et plus lent : aucun intérêt, à part éventuellement pour des gros textes ou articles... et encore ça dépend : si tu en as quelques-uns sur ton site un bon switch(LANG) suffira, par contre si tu en as beaucoup (blog, journal etc...) et donc à priori beaucoup de page... la BD peut être intéressante... Il y a aussi la solution gettext. Si c'est pratique à priori ça implique de recompiler ton fichier de langue à chaque mise à jour d'un seul texte... bref pas gérable.

    Si tu trouve la BD plus pratique mais plus lente... tu peux utiliser BD + un système de cache comme ça tu as tous les avantages

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les liens du site marchand
    Par youza dans le forum E-Commerce
    Réponses: 0
    Dernier message: 19/04/2010, 10h38
  2. [CSS]problème avec les liens
    Par Petogaz dans le forum Mise en page CSS
    Réponses: 16
    Dernier message: 21/04/2006, 19h46

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