[Spip] Site multilingue - une langue par secteur

69 views
Skip to first unread message

Gratouille

unread,
Feb 22, 2011, 11:39:26 AM2/22/11
to sp...@rezo.net
Salut les spipiens :)

Je suis face à une problématique pour la mise en place de mon site multilingue.

Ce site, il contient X secteurs, chacun étant nommé par le préfixe de la langue de ce secteur (en, fr, de, es, etc.).

J'utilise jusqu'ici le plugin "Langue préférée par l'internaute" pour rediriger automatiquement l'utilisateur vers le secteur correspondant à la langue de son browser, ce qui fonctionne très bien : si mon browser est configuré en FR, il redirige bien vers le bon secteur "fr", pareil dans la langue anglaise "en" si le browser est configuré comme tel.

Du coup, pour permettre une navigation multilingue, j'ai monté une selectbox qui va me chercher tous ces secteurs afin de permettre de changer la langue si on veut, chaque lien étant de la forme "www.monsite.com/en", "www.monsite.com/fr", "www.monsite.com/es", "www.monsite.com/de", etc.

Ma problématique, du coup, est la suivante :

- quand je suis en FR, je suis redirigé vers le secteur "fr" (donc www.monsite.com redirige bien vers www.monsite.com/fr), qui est la langue par défaut de mon site,
- quand je clique sur un lien pour changer de langue par exemple "en", je suis redirigé vers www.monsite.com/en, mais le site reste en français, alors qu'il devrait du coup être en anglais.

J'utilise pas mal de plugin pour différents besoin, et au niveau du multilingue, j'ai configuré le site comme suit :

- 1 langue par secteur, le secteur se nommant comme la langue (en, fr, etc.),
- langue principale du site = français (anglais à terme),
- multilinguisme => menu de langue sur articles = non, menu de langue sur rubriques = oui, seulement pour les rubriques à la racine = oui,
- je n'ai pas de forcer_lang ou quoique ce soit dans mon code.

Je ne sais pas si le plugin est en cause (j'en suis pas certain), mais je n'ai pas d'idée pour trouver d'où vient le problème. Si le problème vient du fait qu'on doive forcément ajouter le paramètre lang=XX dans l'url, je trouve ça dommage, dans le sens où le système de découpage en secteurs de langue devrait permettre de s'affranchir de ça.

Merci pour vos retours =)

--
Gratz.

Paolo

unread,
Feb 22, 2011, 12:19:30 PM2/22/11
to sp...@rezo.net
On 22/02/11 17:39, Gratouille wrote:
> Du coup, pour permettre une navigation multilingue, j'ai monté une selectbox qui
> va me chercher tous ces secteurs afin de permettre de changer la langue si on
> veut, chaque lien étant de la forme "www.monsite.com/en", "www.monsite.com/fr" ...

Bonjour, sur le site taize.fr j'ai copié (plus ou moins) le système de spip.net
qui utilise des urls spéciaux. C'est un choix, et je ne sais pas si tu veux la
même chose. Mais si tu veux ...

La base est ...ecrire/urls/html.php

avec des éléments pêchés dans :

http://svn.spip.org/trac/spip-zone/browser/_galaxie_/www.spip.net/squelettes/2008/urls/trad.php

dans ce fichier, des lignes clés sont 115-116 :
$lang = _request('sitelang'); //RewriteRule ?page=secteur&sitelang=URI
// recuperer les rubriques meres demandees par "www.spip.net/LANG"

Faire sa cuisine avec et déposer le fichier dans le répertoire /squelettes/urls

Dans mes_options.php, déclarer le nom du fichier :
$type_urls = "nom_du_fichier"; (où nom_du_fichier est sans l'extension ".php")

Dans le fichier .htaccess une ligne comme
RewriteRule ^([a-z]{2})\/?$ spip.php?page=rubrique&sitelang=$1 [QSA,L]
est aussi nécessaire pour ce système.

Paolo

_______________________________________________
liste spip
sp...@rezo.net - désabonnement : envoyer un mail à spip...@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Gratouille

unread,
Feb 23, 2011, 3:49:41 AM2/23/11
to Paolo, sp...@rezo.net
Salut,

Merci pour ton aide, mais j'ai bien peur de ne devoir t'en demander un peu plus, car c'est effectivement ce que je veux, avec la méthode "arbo" (et pas "html"), car je veux des urls qui sont de la forme "www.monsite.com/en/Ma-rubrique/Mon-article.html".

J'ai crée mon fichier pour mes urls à moi (basées sur le modèle "arbo" du coup), et j'ai jeté un oeil sur le fichier d'urls de spip.net.

J'ai essayé de faire ma "cuisine" comme tu le dis dans ce fichier, mais je sèche, je ne sais pas par exemple dans quelle fonction de cette méthode je dois gérer cette langue. Je comprends le code, qui est de faire un traitement spécifique si on a une langue dans l'url, traitement que l'on traitera en partie via une réécriture d'url dans le .htaccess, mais je ne vois pas où (et comment d'ailleurs) l'adapter dans "arbo.html".

2011/2/22 Paolo <pao...@taize.fr>

Gratouille

unread,
Feb 23, 2011, 8:03:44 AM2/23/11
to Paolo, sp...@rezo.net
Si jamais ça intéresse du monde, j'ai ajouté un bout de code dans les urls de type "arbo", dans lequel je teste si le paramètre de langue existe, et si oui, je fais un simple appel à la fonction "changer_langue($parametredelangue)".

Ca m'a l'air de fonctionner avec mes secteurs / langues.

2011/2/23 Gratouille <chezlegr...@free.fr>

Paolo

unread,
Feb 23, 2011, 9:07:27 AM2/23/11
to sp...@rezo.net
On 23/02/11 14:03, Gratouille wrote:
> Ca m'a l'air de fonctionner avec mes secteurs / langues.

Je suis bien soulagé - comme je ne sais rien des urls arbo, je ne voyais pas
comment j'allais pouvoir t'aider plus !

Message has been deleted
Message has been deleted

Ram

unread,
Jul 21, 2017, 4:43:06 AM7/21/17
to spip, sp...@rezo.net, chezlegr...@free.fr
Bonjour, 

Comment avez-vous fait pour que les urls spip soient de la forme www.monsite.com/LANG/     -> "www.monsite.com/en", "www.monsite.com/fr", "www.monsite.com/es", "www.monsite.com/de"," ? 
Avez-vous modifier le code présent dans mes_options.php ?

Merci 
Reply all
Reply to author
Forward
0 new messages