Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Erreur avec le code multilingue [ Divers / Débutant(e) ] (ochado)

mardi 2 septembre 2008 à 23:45:47 | Erreur avec le code multilingue

ochado

Bonjour,

Je voudrais offrir l'option à mes visiteurs de choisir la langue de leur choix, en cliquant sur un drapeau. J'ai deux fichiers de langues, lang_fra.php et lang_eng.php que j'ai sauvegardés dans le répertoire /lang.

J'ai utilisé le code suivant dans mon index.php:
<code>
if(!empty($_COOKIE[lang]))$lang=$_COOKIE[lang];
if(!empty(
$_GET[lang]))$lang=$_GET[lang];
if(!empty(
$lang) && ($lang==eng || $lang==fra )){
  include(/lang/
lang_.$lang..php);
  
setcookie(lang,$lang,time()+3600*25*365);
}else include(/lang/
lang_eng.php);
</code>

Et le code suivant pour les drapeaux:
<code><a href=?lang=fra><img src="http://www.ochado.ca/clipart/franceflag.gif" border="0"></a></code>

Et pour chaque mot qui doit être traduit, j'ai la variable $lang comme marqueur, ex.: $lang['index']['welcome']

Mais quand on clique sur un drapeau, je reçois le message d'erreur suivant : Fatal error: Cannot use string offset as an array in /home/ochadoca/public_html/store/test/lang/lang_fra.php on line 19

C'est à cette ligne que débute ma traduction
<code>$lang['index']['welcome']    = 'Bienvenue';</code>

Je ne comprends pas le message d'erreur et je ne sais plus trop où donner de la tête... Est-ce que quelqu'un aurait une idée du problème et comment le solutionner?

ochado


mercredi 3 septembre 2008 à 00:54:29 | Re : Erreur avec le code multilingue

Aaron

Membre Club
Salut,

Il manque des guillemets un peu partout.

++

mercredi 3 septembre 2008 à 01:17:09 | Re : Erreur avec le code multilingue

ochado

Merci,

j'ai ajouté des guillemets pour les includes comme suivant:

include('lang/lang_'.$lang.'.php');
else include('lang/lang_eng.php');

Mais j'ai toujours le même message d'erreur...



mercredi 3 septembre 2008 à 02:01:03 | Re : Erreur avec le code multilingue

Aaron

Membre Club
Salut,

Il faut en mettre aussi dans les variables du style $_GET['Quelquechose'].

Essaye ceci :

if((isset($_COOKIE['lang']) || isset($_GET['lang']) && (($lang == "eng") || ($lang = "fra"))){
    include('/lang/lang_'.$lang.'.php');
    /* Cookie valable un an */
    setcookie('lang', $lang, time()+31536000);
}
else{
    include('/lang/lang_eng.php');
}



mercredi 3 septembre 2008 à 02:07:48 | Re : Erreur avec le code multilingue

Aaron

Membre Club
De plus, $lang est un string (chaîne de caractères) et non un array (un tableau), alors il n'est pas possible d'utiliser la méthode : $lang['clé']['valeur'].

Pour vérifier : print_r($lang);

Si c'est pas la même variable, nomme les différemment, là cela me parait assez confus.

mercredi 3 septembre 2008 à 02:43:55 | Re : Erreur avec le code multilingue

ochado

Merci Aaron

J'ai ajouté le code et effectivement, le problème semble être dû au fait que $lang est utilisé comme un array dans mon fichier de langue mais que le code pour appeler le choix est un string... Alors j'ai codé comme ça au lieu :

if(isset($_COOKIE['text']) || isset($_GET['text']) && (($text == "eng") || ($text= "fra"))){
    include('lang_'.$text.'.php');
    /* Cookie valable un an */
    setcookie('lang', $text, time()+31536000);
}
else{
    include('lang_eng.php');
}

Mais le fouilli que ça a généré! Ouh là! Je vois ma page maintenant mais tous les array sont sorti de leurs gonds et apparaissent aussi sur la page. Je ne crois pas être sur la bonne voie là


mercredi 3 septembre 2008 à 10:32:48 | Re : Erreur avec le code multilingue

extraman1

Membre Club
Salut,

Dans ton if, je vois plein d'anomalie :

tu as $text = "fra" au lieu de = =
Attenttion il manque aussi une parenthèse à la fin de isset($_GET['text'])

Mais je pense qu'il n'y pas que ça, il faudrait le code complet, soit tu le postes, soit tu me l'envoi en message privé.

A++ extraman1

mercredi 3 septembre 2008 à 10:56:29 | Re : Erreur avec le code multilingue

Aaron

Membre Club
Salut!

Désolé pour les petites erreurs de syntaxe, j'étais un peu fatigué!

/ Oui, il faut que nous voyions le code complet parce qu'il y'a surment d'autres erreurs.

mercredi 3 septembre 2008 à 18:35:02 | Re : Erreur avec le code multilingue

ochado

Salut!

Pas de problème, je connais ça aussi les nuits blanches

Je veux bien vous poster tout le code mais ça va être vraiment long (c'est une boutique électronique)... Pour l'instant, j'ai fait les corrections et plus d'erreurs! Je sauterais de joie mais il y a un hic (bien sûr), quand je clique sur les drapeaux, il ne se passe rien. Je ne crois pas que le fichier de langue est appelé. J'ai remis "lang" au lieu de "text" (sait-on jamais) mais c'est le statu quo; rien ne se passe.

Je pense bien qu'Aaron avait raison à propos des arrays. Je n'ai plus le message d'erreur mais le programme semble bloquer quelque part.
Et vraiment, je n'en peux plus de Google Translate (il me traduit essence naturelle par gazoline naturel!! Ah oui, le thé aux pêches est devenu du thé aux poissons... et j'en passe...)

En ce moment c'est les fichiers suivant que j'utilise :
  • index.php
  • main_index.html (index.php redirige à ce fichier qui fait parti d'un modèle)
  • table_languages.html (appelé dans main_index.html comme $table[languages])
  • lang_fra.php
  • lang_eng.php

index.php

if((isset($_COOKIE['lang']) || isset($_GET['lang'])) && (($lang== "eng") || ($lang== "fra"))){
    include('lang_'.$lang.'.php');

    setcookie('lang', $lang, time()+31536000);
}
else{
    include('lang_eng.php');
}

lang_fra.php (quelques lignes)

//--Miscellaneous--//
$lang['index']['welcome']    = 'Bienvenue';

//--Header Navigation--//
$lang['index']['home']        = 'Accueil';
$lang['index']['catalog']    = 'Catalogue';
$lang['index']['myaccount']    = 'Mon compte';
$lang['index']['viewcart']    = 'Voir panier';
$lang['index']['logout']    = 'Fermer la session';

lang_eng.php (quelques lignes)

//--Miscellaneous--//
$lang['index']['welcome']    = 'Welcome';

//--Header Navigation--//
$lang['index']['home']        = 'Home';
$lang['index']['catalog']    = 'Catalog';
$lang['index']['myaccount']    = 'My Account';
$lang['index']['viewcart']    = 'View Cart';
$lang['index']['logout']    = 'Logout';

table_languages.html


<h2><img src="themes/$settings[theme]/images/feuille_box.gif" border="0" alt="" class="left_float_3_px" /> Langue - test</h2>
<div class="content">
<a href=?lang=fra><img src="http://www.ochado.ca/clipart/franceflag.gif" border="0"></a>
<a href=?lang=eng><img src="http://www.ochado.ca/clipart/USAFLAG.gif" border="0"></a>
</div>

main_index.html (quelques lignes)

    <div id="top_nav">
       
        <a href="$settings[shopurl]index.php">$lang[home]</a><span>&nbsp;</span>
        <a href="$settings[shopurl]index.php?l=account">$lang[myaccount]</a><span>&nbsp;</span>
        <a href="$settings[shopurl]index.php?l=cart_view">$lang[viewcart]</a>
   </div>


J'espère que c'est plus clair! Il y a aussi un global.php mais je ne sais pas s'il est vraiment pertinent ici?

Merci beaucoup pour l'aide que vous m'apportez!!



mercredi 3 septembre 2008 à 20:20:20 | Re : Erreur avec le code multilingue

extraman1

Membre Club
Salut,

Ok essayons, peux-tu changer tous tes $lang des fichiers lang_fra.php et lang_eng.php en $langue.
Ensuite dans ton main_index.html change comme ceci:

    <div id="top_nav">
       
        <a href="$settings[shopurl]index.php">$langue['index']['home']</a><span>&nbsp;</span>
        <a href="$settings[shopurl]index.php?l=account">$langue['index']['myaccount']</a><span>&nbsp;</span>
        <a href="$settings[shopurl]index.php?l=cart_view">$langue['index']['viewcart']</a>
   </div>

A++ extraman1


1 2

Cette discussion est classé dans : code, php, erreur, lang, fra


Répondre à ce message

Sujets en rapport avec ce message

Mysql et Php [ par Game69 ] Game69 vous salutJe débute en php en me servant d'un bouquin et je me heurte à un problème de syntaxe qui est un exemple donné dans ce livre.Voici le Erreur dans le code PHP sous IE ? [ par Rimb0 ] Bonjour à tous ! J'ai une question que je me pose depuis que je code en php (donc pas longtemps). J'ai codé des pages, et tant que ça s'affiche, j'es Problème de code : Erreur de PhP sur un code apparement bon... [ par shadow125 ] Bonjours, j'essaye de programmer un bout de code enregistrant des infos de pts sur un fichier txt. Après avoir loggé le visiteur, la page points.php a Code erreur PHP [ par M000004965 ] Hello tout le monde,qq'1 peut m'expliquer ce qui cloche?!l'instruction suivante:$sql = "SELECT * FROM $datatable2 ORDER BY `CHOIX` DESC";me renvoi :Pa Besoins d'aide sur mon code php/mysql ^^ [ par frostfire ] Bonsoir !alors mon code : http://rafb.net/p/oNyDOp90.htmlalors enfaite sa me fait une erreur mysql : erreur:Can't connect to local MySQL server throug erreur avec la fonction header [ par hajeur_abd ] bonjourlors de l'execution de mon code :    header("location: libre.php?$code"); l'erreur suivant s'affiche:Warning: Cannot add header information - h Erreur dans mon code [ par matthieugoua ] Bonjour voila j'essaye decrire une fonction dans un fichier PHP qui au survol d'une miniature d'image devrait m'afficher l'image en taille reel dans u erreur php [ par zebu238 ] Bonjour,Celà fait quelques heures que je bute sur une erreur qui doit être toute bête.[code]while($array = mysql_fetch_array-($requete)){   echo' du php dans le xml [ par alain732 ] Bonjour,J'ai un souci entre le php et le xml.Voici le code que j'aimerai modifier pour pouvoir aller chercher les informations dans une base MYSQL.Le redirection de vers une page [ par cyrilherve ] tj'ai un formulaire de connection avec deux champ de saisi pour l'identifiant et le mot de passe. la methode 'action' execute le fichier 'menuprincipa


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.