Cédric Girard Posted July 19, 2009 Share Posted July 19, 2009 BonjourDans le cadre d'une modification pour boutique bilingue sur deux domaines (mais avec une seule BDD, un seul back-office et une seule source pour les images) j'ai le besoin de pouvoir forcer la langue par défaut.Pour ce faire, je dois donc "forcer" la valeur de $defaultCountry dans /config/config.inc.phpOr, quand j'essaye de la forcer directement dans ce fichier, il me dit "tentative de piratage" ou un truc du genre sur le front-office !!!Comment faire ?C'est le SEUL truc qui ne fonctionne pas (en fait le problème ne se pose pas pour l'internaute, mais pour les bots des moteurs qui eux, vont aller utiliser la langue par défaut...) ; je n'arrive pas dans le cas des bots à forcer la langue comme je le fais pour les internautes (là ça fonctionne bien) dans le header.php...MERCI (c'est assez urgent - je sais, on est dimanche)voir page 2 pour solution. Link to comment Share on other sites More sharing options...
Julien Breux Posted July 19, 2009 Share Posted July 19, 2009 Voici une façon simple en fonction du nom de domaine : Code à ajouter ligne 115 du fichier classes/Tools.php // JBX - 19/07/2009 16:13:21 if($_SERVER['HTTP_HOST'] == 'localhost') // FR { $array[0] = 'EN'; } if($_SERVER['HTTP_HOST'] == 'localhost-en') // EN { $array[0] = 'FR'; } // JBX - 19/07/2009 16:13:27 Remplacer localhost par le domaine en .fr (www.google.fr)Remplacer localhost-en par le domaine en .com (www.google.com)Mélanger le tout, gouter, et me dire si c'est bon Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 19, 2009 Author Share Posted July 19, 2009 MERCI JulienEn fait le soucis se pose sur l'une des boutiques (les deux utilisent la même base de données) car on ne peut évidemment spécifier qu'une seule langue par défaut dans le BO.J'essaye ça :-) Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 19, 2009 Author Share Posted July 19, 2009 UPEuh en fait je l'avais déjà fait Mais ça ne fonctionne pas exactement comme je le voulais. En fait quand un bot de moteur de recherche passe sur la boutique, si la langue par défaut dans le BO (paramétré depuis "Outils / Langues") est par ex. sur "Anglais" MÊME avec un paramétrage forcé à FR comme tu l'as fait, ça ne fonctionne pas.Le bot indexe la version anglaise :-(Du coup il me faut forcer la variable équivalant au choix de la langue par défaut. Ce que j'essaye de faire... Du coup je ne suis pas sûr que ce soit au bon endroit que je cherche (je veux pouvoir forcer la valeur définie dans le BO à l'endroit que je dis, au niveau de la boutique) :roll: J'ai évidemment essayé avec un "simulateur de bot", ça fonctionne bien comme je le dis. Quand il passe sur la boutique, fut-elle forcée via ta modif en français, lui lit les infos en anglais. Si je modifie ma langue par défaut au français, il les lit en français.CQFDMais bon, ça répond pas à ma demande du coup Link to comment Share on other sites More sharing options...
Julien Breux Posted July 19, 2009 Share Posted July 19, 2009 Étrange, le problème, c'est que Prestashop utilise les cookies pour le stockage de poursuite ...Du coup, effectivement, si le "bot" ne peut sauvegarder le cookie, la langue passe à l'Anglais...C'est délicat :-s Link to comment Share on other sites More sharing options...
Ann Posted July 19, 2009 Share Posted July 19, 2009 Bonjour,Je suis également intéressée par le sujet et très attentive à toute suggestion en ce domaine ! Ann Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 20, 2009 Author Share Posted July 20, 2009 BonjourPas d'idées ? La team ?Je vais devoir installer une boutique bidon pour mes tests ?... :-( Link to comment Share on other sites More sharing options...
Philippe Posted July 20, 2009 Share Posted July 20, 2009 Du coup, effectivement, si le "bot" ne peut sauvegarder le cookie, la langue passe à l'Anglais... Ce qui pose un problème pour les sites qui n'ont pas de version anglaise car, en se connectant notamment depuis l'étranger, le site affiche des pages sans texte plutôt que de proposer la langue par défaut. Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 20, 2009 Author Share Posted July 20, 2009 Bonjour PhilippeJe n'ai pas ce phénomène sur mes boutiques françaises. S'il n'y a qu'une seule langue, c'est la seule affichée. Link to comment Share on other sites More sharing options...
Philippe Posted July 20, 2009 Share Posted July 20, 2009 C'est le cas effectivement en France. Mais j'ai constaté à plusieurs reprise que, notamment depuis l'étranger, la version française n'est pas toujours prise en compte. Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 20, 2009 Author Share Posted July 20, 2009 As-tu bien pensé à désactiver (j'ai pas dit "supprimer") les autres langues ?Car effectivement dans ce cas précis, on a des affichages foireux si on ne le fait pas ;-) Link to comment Share on other sites More sharing options...
Philippe Posted July 20, 2009 Share Posted July 20, 2009 Je confirme : toutes les autres langues sont bien désactivées. Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 20, 2009 Author Share Posted July 20, 2009 Étrange alors car moi j'ai pas le soucis ???Quoi qu'il en soit, je DOIS absolument pouvoir forcer en dur la langue par défaut. Et j'ai pas la réponse à ma question :-/ Link to comment Share on other sites More sharing options...
Philippe Posted July 20, 2009 Share Posted July 20, 2009 Étrange alors car moi j'ai pas le soucis ??? Tu n'as pas le souci... mais comment simuler ce problème alors que je n'ai pu le remarquer que lors de connexions depuis l'étranger ? Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 20, 2009 Author Share Posted July 20, 2009 Via des simulateurs de bots (basés aux USA par exemple) Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 20, 2009 Author Share Posted July 20, 2009 UpÀ défaut, comment désactiver le message de "piratage" ? C'est vraiment pénible !!! Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 21, 2009 Author Share Posted July 21, 2009 UP !La solution :-)Modifier la fonction suivante comme ceci dans le fichier /classes/configuration.php : static public function get($key, $id_lang = NULL) { if (!is_array(self::$_CONF) OR !is_array(self::$_CONF_LANG) OR !Validate::isConfigName($key)) die(Tools::displayError()); if ($id_lang) { if (key_exists(intval($id_lang), self::$_CONF_LANG) AND key_exists($key, self::$_CONF_LANG[intval($id_lang)])) return self::$_CONF_LANG[intval($id_lang)][$key]; } elseif (key_exists($key, self::$_CONF)) { // MODIFICATION LANGUE PAR DEFAUT POUR LES ROBOTS if($key=='PS_LANG_DEFAULT') { // Variable langue => on force l'anglais return '1'; } else { return self::$_CONF[$key]; } // FIN DE MODIFICATION } $result = Db::getInstance()->GetRow(' SELECT IFNULL('.($id_lang ? 'cl' : 'c').'.`value`, c.`value`) AS value FROM `'._DB_PREFIX_.'configuration` c '.($id_lang ? ('LEFT JOIN `'._DB_PREFIX_.'configuration_lang` cl ON (c.`id_configuration` = cl.`id_configuration` AND cl.`id_lang` = '.intval($id_lang).')') : '').' WHERE `name` = \''.pSQL($key).'\''); return ($result ? $result['value'] : false); } En fait, je "surclasse" la valeur de la langue par défaut telle que définie dans le back-office (ici pour la partie anglophone, alors que la langue par défaut est le français). Permet d'avoir la bonne langue pour les bots de Google et compagnie quand ils passent sur le site ;-)OUF !Je vais voir pour faire un article complet sur les modifications à réaliser pour faire fonctionner une boutique en bilingue sur deux URL (une URL = une langue), ça pourrait intéresser du monde.La boutique que je viens de finaliser fonctionne sur le principe suivant :* boutique francophone : y sont stockées les images et l'accès back-office. Le français est la langue par défaut.* boutique anglophone : modifications pour utilisation de la base de données de la version française + hotlink sur les images stockées côté français + modifications pour forcer la langue à l'anglaisPetite modif finale sur le module "blocklanguages" pour pouvoir passer d'une boutique à l'autre, et voilà ;-) Link to comment Share on other sites More sharing options...
Maxime. Posted July 22, 2009 Share Posted July 22, 2009 beau travail Cedric ! Link to comment Share on other sites More sharing options...
toitos Posted July 26, 2009 Share Posted July 26, 2009 UPEuh en fait je l'avais déjà fait Mais ça ne fonctionne pas exactement comme je le voulais. En fait quand un bot de moteur de recherche passe sur la boutique, si la langue par défaut dans le BO (paramétré depuis "Outils / Langues") est par ex. sur "Anglais" MÊME avec un paramétrage forcé à FR comme tu l'as fait, ça ne fonctionne pas.Le bot indexe la version anglaise :-(Du coup il me faut forcer la variable équivalant au choix de la langue par défaut. Ce que j'essaye de faire... Du coup je ne suis pas sûr que ce soit au bon endroit que je cherche (je veux pouvoir forcer la valeur définie dans le BO à l'endroit que je dis, au niveau de la boutique) :roll: J'ai évidemment essayé avec un "simulateur de bot", ça fonctionne bien comme je le dis. Quand il passe sur la boutique, fut-elle forcée via ta modif en français, lui lit les infos en anglais. Si je modifie ma langue par défaut au français, il les lit en français.CQFDMais bon, ça répond pas à ma demande du coup <?php // Conecta a la base de datos include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/config/settings.inc.php'); // Comprueba procedencia nombre dominio If($_SERVER['HTTP_HOST'] == "www.dominioingles.com"){ $q = "UPDATE ps_configuration p SET value=1 WHERE p.`id_configuration`=1"; $r = @mysql_query($q); } Elseif($_SERVER['HTTP_HOST'] == "www.dominioespanol.com"){ $q = "UPDATE ps_configuration p SET value=4 WHERE p.`id_configuration`=1"; $r = @mysql_query($q); } ?> Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 27, 2009 Author Share Posted July 27, 2009 Merci pour cette solutionAttention toutefois, en cas de connexions simultanées, je doute que cela fonctionne ;-) Link to comment Share on other sites More sharing options...
ostero93 Posted July 31, 2009 Share Posted July 31, 2009 Bonjour,Simplement pour être sur que j'ai bien compris.La procédue que tu a utilisé est bien celle qui permet au bot de detecter les différentes pages de ton site en différentes langues. c'est à dire que le bot considere bien qu'il y a deux versions du site, l'une avec des pages francaises, l'autre avec des pages de l'autre langue?remerciements,Clt, Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 31, 2009 Author Share Posted July 31, 2009 Oui, mais l'URL doit impérativement être différente (précision qui va de soit) d'une langue à l'autre. Link to comment Share on other sites More sharing options...
ostero93 Posted July 31, 2009 Share Posted July 31, 2009 Merci pour la reponse rapide J'ai bien des url différents selon que la page est en francais en anglais ou espagnol. Sauf que ma page d'accueil a toujours le même URL www.monsite.com/index.php peut importe la langue que je selectionne.Donc si j'ai bien compris, il me suffit de créer des sous domaines pour .es. et .en. , puis faire les modification du fichier comme décrit par tes soins et le tour sera joué?Deux petites dernières questions:1/ comment faire pour que mon url de page d'accueil soit différentes pour l'espagnol et pour l'anglais une fois le petit drapeaux selectionné?2/ Y aura t'il des conséquences sur la gestion BO ? Merci par avance pour le soutien,CltNono Link to comment Share on other sites More sharing options...
jolvil Posted July 31, 2009 Share Posted July 31, 2009 A noter que sur PS1.2 les urls sont différenciés selon les langues avec l'ajout d'un sous repertoire pour chaque langue avec la réécriture d'urlhttp://www.my-shop.com/lang-en/http://www.my-shop.com/lang-fr/etc Link to comment Share on other sites More sharing options...
ostero93 Posted July 31, 2009 Share Posted July 31, 2009 Merci pour l'info Pense tu que cette version est stable? je ne suis pas un grand expert alors je ne vousdrais pas changer de versions et risquer de chambouler mon mode opératoir.D'autre par, tu sousentends bien ici que je n'aurai plus ce problème de "/index.php" qui reste accroché à toutes les langues?Clt,Nono Link to comment Share on other sites More sharing options...
jolvil Posted July 31, 2009 Share Posted July 31, 2009 Bien sur que cette version est stable, elle est sortie en version finale , c'est une evolution de la V1.1 avec de nouvelles fonctionnalités et de nombreux bugs corrigés. Link to comment Share on other sites More sharing options...
ostero93 Posted July 31, 2009 Share Posted July 31, 2009 Et pour le problème d'URL? MerciNono Link to comment Share on other sites More sharing options...
ostero93 Posted July 31, 2009 Share Posted July 31, 2009 autre petites question,Avec cette nouvelle version, il me sufira donc de géolocaliser sur google chaune des urls suivantes http://www.my-shop.com/lang-en/http://www.my-shop.com/lang-fr/et de faire un sitemap par langue, c'est bien ca?Clt Nono Link to comment Share on other sites More sharing options...
gtraxx Posted May 4, 2010 Share Posted May 4, 2010 Je relance le sujet,je souhaite utiliser les urls de base de prestashop 1.2.5 qui dans le sitemap sont bien : http://www.my-shop.com/lang-en/http://www.my-shop.com/lang-fr/ Cependant, si on change de langue en navigant et que l'on clique sur un lien, la langue ne passe plus dans l'url !!!Comment garder simplement les urls avec la langue afin d'avoir les bon lien interne suivant la langue. Link to comment Share on other sites More sharing options...
LeGastronome Posted October 2, 2010 Share Posted October 2, 2010 Ca marche encore sous la 1.3 ca? avec les lang-en ?meme en trifouillant dans le fichier config, ca n'as pas l'air de vouloir rediriger Link to comment Share on other sites More sharing options...
sanselle Posted November 19, 2010 Share Posted November 19, 2010 Bonjour,On a :http://www.my-shop.com/lang-en/http://www.my-shop.com/lang-fr/j'aimerais savoir où modifier la variable "lang-en" pour avoir "en" ?Merci Link to comment Share on other sites More sharing options...
LeGastronome Posted November 19, 2010 Share Posted November 19, 2010 Logiquement c'est corrigé sur la version 1.3sous quelle version êtes vous ? Link to comment Share on other sites More sharing options...
sanselle Posted November 19, 2010 Share Posted November 19, 2010 je suis en 1.2, j'essayerai ce soir de mettre la 1.3.Je vous tiens au courant.Merci Link to comment Share on other sites More sharing options...
valentin Posted April 27, 2011 Share Posted April 27, 2011 Est t'il possible de changer la langue par default sur la version 1.4.1 ?Car dans le BO , il me donne Tj l'Anglais pour remplire les parametres et moi je désire le Francais.Quand je desactive le UK , j'ai un message d'erreurInternal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request.Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.More information about this error may be available in the server error log.et apres plus aucun acces a la boutique ( bo et Fo) ...Merci de votre aide Link to comment Share on other sites More sharing options...
daftfunk Posted January 17, 2012 Share Posted January 17, 2012 Bonjour tout le monde ... dans la même veine, je voudrais forcer le transporteur par défaut ...est ce possible? Merci Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now