Site multilingue avec des variables dans les traductions [Résolu]

Messages postés
196
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
10 août 2009
- - Dernière réponse : dvdstory
Messages postés
196
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
10 août 2009
- 24 juin 2007 à 07:33
Bonjour,
Je souhaite faire un site multilingue, mais des variables me posent problème, je connais le principe, On detecte la langue du navigateur puis on inclut un fichier contenent les traductions de la langue de l'internaute.

Detection puis
inclue('fr.php') par exemple

fr.php contient par exemple:

lang['welcome'] = "bienvenue";
lang['hello'] = "bonjour";

mais lorsque j'ai une variable y a un problème

lang['nbuser] = "il y a en ce moment $nb connectés";

le $nb ne s'affiche pas puisqu'on a inclut le fichier langue au début du fichier et on a définit $nb que après donc lors de la création $nb n'existait pas encore.

Merci de m'aider si vous avez une solution.

J'ai déja penser à quelques solutions mais elles ne me conviennent pas.

-Couper les phrase en 2 au niveau de la variable.
ex:
lang['nbuser1] = "il y a en ce moment";
lang['nbuser2] = "connectés";

dans le fichier écrire echo "lang['nbuser1]  $nb lang['nbuser2] ";

- Ou encore faire en sorte d'inclure le fichier langue entre la déclaration de la variable et l'affichage du résultat dans la langue voulu.
mais faut inclure le fichier a chaque variable, quand y en a plus d'une vingtaine c'est l'enfer.

Pour les curieux et ceux que ça interesse ça serait pour traduire un prog sur Pythagore et sa réciproque en AJAX http://www.egrunenberger.com/pythagore/
mais si j'ai une technique de traduction qui marche sans problème avec des variables, alors j'en traduirais d'autre.

Merci de m'aider si vous avez une solution.

GRUNENBERGER Benoît
www.UnrealNetwork.net
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
42
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
23 juin 2007
3
Merci
Bonjour,

Un soluce est de mettre de ' au lieu de " (les variables ne sont modifié)
Et de les evaluer a l'affichage.
Ce code marche:

<?php
    $lang['test'] = 'le nombre $nb est affiché';
    $nb = 2;
    eval('echo "'.$lang['test'] .'";');
?>

++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 143 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Snowboarder69
Messages postés
196
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
10 août 2009
0
Merci
Merci [auteurdetail.aspx?ID=48508 Snowboarder69]
ça marche nikel, si quelqu'un a encore une autre solution, je suis pas contre et comme ça , ça fera un post complet.

GRUNENBERGER Benoît
www.UnrealNetwork.net
Commenter la réponse de dvdstory