Site multilingue avec des variables dans les traductions

Résolu
dvdstory Messages postés 192 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 10 août 2009 - 23 juin 2007 à 10:55
dvdstory Messages postés 192 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

2 réponses

Snowboarder69 Messages postés 41 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 23 juin 2007
23 juin 2007 à 11:44
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'] .'";');
?>

++
3
dvdstory Messages postés 192 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 10 août 2009
24 juin 2007 à 07:33
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
0