Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2007, 13h27   #1
Membre habitué
 
Inscription : juillet 2004
Messages : 231
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 231
Points : 141
Points : 141
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 ?
dinbougre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 13h59   #2
Membre chevronné
 
Avatar de J0r_x
 
Homme
Analyste - Programmeur
Inscription : mai 2006
Messages : 712
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Analyste - Programmeur
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2006
Messages : 712
Points : 607
Points : 607
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.
J0r_x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h04   #3
Membre habitué
 
Inscription : juillet 2004
Messages : 231
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 231
Points : 141
Points : 141
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
dinbougre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h13   #4
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
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 :
$tavariable = str_replace('Developpez.net','<a href="www.developpez.net">Developpez.net</a>', $tavariable);
Bonne journée
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h16   #5
Membre habitué
 
Inscription : juillet 2004
Messages : 231
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 231
Points : 141
Points : 141
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 :
$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)
dinbougre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h20   #6
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
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 ...
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h28   #7
Membre habitué
 
Inscription : juillet 2004
Messages : 231
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 231
Points : 141
Points : 141
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 :
$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 :
<? echo $lang['texte']; ?>
Cette solution ne me plait pas pcq j'ai mon tag html dans mon fichier de langue
dinbougre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 11h28   #8
Membre actif
 
Avatar de bigsister
 
Homme OLE MAIN()
Développeur Web
Inscription : octobre 2002
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme OLE MAIN()
Localisation : France

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

Informations forums :
Inscription : octobre 2002
Messages : 296
Points : 191
Points : 191
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 :
1
2
3
 
define('MON_TEXTE', "c'est par %slà%s")
echo sprintf(MON_TEXTE, "<a href=''>", "</a>");
bigsister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 11h32   #9
Membre habitué
 
Inscription : juillet 2004
Messages : 231
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 231
Points : 141
Points : 141
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 ?
dinbougre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 11h45   #10
Membre actif
 
Avatar de bigsister
 
Homme OLE MAIN()
Développeur Web
Inscription : octobre 2002
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme OLE MAIN()
Localisation : France

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

Informations forums :
Inscription : octobre 2002
Messages : 296
Points : 191
Points : 191
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
bigsister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 11h59   #11
Membre habitué
 
Inscription : juillet 2004
Messages : 231
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 231
Points : 141
Points : 141
ok merci
dinbougre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h22.


 
 
 
 
Partenaires

Hébergement Web