Submitted by lektum on
Voilà, je crée un site bilingue sous Drupal, français-anglais. La langue par défaut est l'anglais. Je voudrais créer une redirection automatique qui permet à qqun qui tape www.mon-site.com dans son navigateur de tomber directement sur www.mon-site.com/en.
Le but est d'empêcher le navigateur de déterminer la langue par défaut et de forcer l'affichage du site en anglais sur www.mon-site.com. Quelle manière propre et simple de faire ça ? J'imagine que le fichier htaccess est un bon candidat.
Je précise que le site www.mon-site.com est installé dans sites/mon-site.com
et non dans sites/default (prévision de multisite).
configuration du site/toutes
Permalien Soumis par Yoran le 23 Juillet, 2009 - 23:02
configuration du site/toutes les langues/configurer et sélectionner "Préfixe de chemin avec solution dégradée." Ensuite, tu reviens sur l'onglet des langues et tu configures le prefix de l'anglais "en"
Merci. Mais ça, c'est
Permalien Soumis par lektum le 23 Juillet, 2009 - 23:39
Merci. Mais ça, c'est déjà fait :)
Mon problème est autre : je veux parler du tout premier accès au site. Quand tu te connectes au site pour la 1ère fois et que tu tapes le nom de domaine principal : mon-site.com (sans préfixe).
Et bien, là, tu tombes pas sur mon-site.com/en, même si la langue anglaise est définie par défaut, préfixée avec /en, etc. Dès que tu te mets à naviguer sur le site, là ça va, un lien vers le home du domaine te ramène bien sur mon-site.com/en ou mon-site.com/fr avec le bon préfixe.
Mais le pb se pose pour le tout premier accès au site. Habituellement on s'en fiche car, en France, la langue par défaut du site est souvent le... français. Mais, là, je suis sur un projet où le visiteur doit tomber sur la version anglaise du site, même quand il se connecte depuis Paris avec un browser qui croit qu'il préfère le français. Bref, je veux que qqun qui arrive sur le domaine principal lors de son tout premier accès tombe sur la version english. Chez moi, ça le fait pas. Alors comment faire ?
Plus clair, comme ça ?
Oui effectivement plus clair
Permalien Soumis par Yoran le 24 Juillet, 2009 - 09:41
Oui effectivement plus clair :)
Alors il existe peut-être "ben-voyons-y-a-un-module-qui-fait-ça-déjà", mais moi ce que je ferais c'est un module avec juste un hook_init dans lequel je collerais ce code :
L'idée est simplement de vérifier que le chemin ne contient pas de préfixe valide, et si c'est le cas de faire un drupal_goto sur le chemin qui, si ton système de langue est proprement configuré, ira directement sur l'URL avec le préfixe correspondant à tes réglages.
Pour le drupal_goto je
Permalien Soumis par yvmarques@drupal.org le 24 Juillet, 2009 - 12:07
Pour le drupal_goto je serais même tenté de faire ceci :
drupal_goto($_GET['q'], NULL, NULL, 301);
Car par défaut c'est du 302, et c'est pas bon.
Salutations
Très juste :)
Permalien Soumis par Yoran le 24 Juillet, 2009 - 12:14
Très juste :)
Je n'ai encore jamais créé
Permalien Soumis par lektum le 24 Juillet, 2009 - 12:47
Je n'ai encore jamais créé de module de mes propres mains :)
Suffit-il de copier ce code dans un fichier mon_module.module ?
Le tout en suivant les consignes données ici ?
Si j'ai bien compris, un module a minima, c'est seulement un fichier .info et un fichier .module ?
Mille merci !
En tout cas, c'est ce que je
Permalien Soumis par lektum le 24 Juillet, 2009 - 13:01
En tout cas, c'est ce que je viens de faire ! J'ai créé un banal module composé de 2 fichiers :
default_lang_redirect.info
etdefault_lang_redirect.module
.Dans le fichier default_lang_redirect.module, j'ai collé ton code en omettant bien le tag fermant de php, et on dirait que ça marche !
J'espère bien que ça
Permalien Soumis par Yoran le 24 Juillet, 2009 - 13:03
J'espère bien que ça marche ;-) Si tu as un soucis n'hésites pas à m'appeler
Merciii :)
Permalien Soumis par lektum le 24 Juillet, 2009 - 14:01
Merciii :)