urls propres et balise multi

Bonjour,
j'ai un site franco-russe. J'ai les titres des rubriques définis avec des balises <multi>, la langue principale du site est le russe, et pourtant si je sélectionne propres2 pour avoir des urls propres, c'est l'url française qui sort dans la partie publique, langue russe sélectionnée.

Que faire ?

spip 2.10

Nicolas

J'ai lu quelque part que SPIP attribue une seule réécriture d'URL par identifiant de rubrique et d'article. Je comprends donc pourquoi la réécriture ne fonctionne pas correctement sur un site multilingue, mais je trouve ce choix bizarre, car une url russe sur un contenu français, ou l'inverse, c'est pas top !

Quelqu'un sait-il si ceci doit être revu dans une prochaine version de SPIP, où s'il faut se résoudre à séparer les langues : secteur russe, secteur français... ?

Peut être un plugin qui permettrait de résoudre ce point ?

Le 12 déc. 2009 à 15:57, Nicolas Germain a écrit :

Bonjour,
j'ai un site franco-russe. J'ai les titres des rubriques définis avec des balises <multi>, la langue principale du site est le russe, et pourtant si je sélectionne propres2 pour avoir des urls propres, c'est l'url française qui sort dans la partie publique, langue russe sélectionnée.

Que faire ?

spip 2.10

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

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

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

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

Nicolas Germain a écrit :

J'ai lu quelque part que SPIP attribue une seule réécriture d'URL par identifiant de rubrique et d'article. Je comprends donc pourquoi la réécriture ne fonctionne pas correctement sur un site multilingue,

tout dépend de la structure du site.

mais je trouve ce choix bizarre, car une url russe sur un contenu français, ou l'inverse, c'est pas top !

ca, c'est dans le cas ou tu utilises une seule arborescence de rubriques et des contenus internationalisés avec <multi>, et dans ce cas, le "probleme" ne se pose que sur les rubriques (car dans ce cas, tu peux quand meme faire un article par langue et gerer les liens de traduction)

Quelqu'un sait-il si ceci doit être revu dans une prochaine version de SPIP, où s'il faut se résoudre à séparer les langues : secteur russe, secteur français... ?

tu le dit très bien : secteur russe, secteur francais... des rubriques differentes donc des urls differentes.

Peut être un plugin qui permettrait de résoudre ce point ?

avec les url libres, je pense qu'on peut supporter plusieurs urls, mais pas defaut, il doit y avoir une redirection sur la dernière (pour que google ne voit pas du "duplicate content" quand tu change d'adresse mais que l'ancienne reste active)

Le 12 déc. 2009 à 15:57, Nicolas Germain a écrit :

Bonjour,
j'ai un site franco-russe. J'ai les titres des rubriques définis avec des balises <multi>, la langue principale du site est le russe, et pourtant si je sélectionne propres2 pour avoir des urls propres, c'est l'url française qui sort dans la partie publique, langue russe sélectionnée.

Que faire ?

=> donc plutot faire 2 arborescences.
sinon, tu peux aussi faire un article virtuel avec le titre russe qui redirige vers ta rubrique en ajoutant lang=ru

@++

Le 14 déc. 2009 à 11:17, Stephane a écrit :

Nicolas Germain a écrit :

J'ai lu quelque part que SPIP attribue une seule réécriture d'URL par identifiant de rubrique et d'article. Je comprends donc pourquoi la réécriture ne fonctionne pas correctement sur un site multilingue,

tout dépend de la structure du site.

En gros, y'a 2 structures possibles, soit on sectorise par langue, y'a des avantages et des inconvénients, soit on définit une seule hiérarchie de rubriques valable pour toutes les langues, et les articles sont des traductions d'articles de référence. Cette 2ème façon de faire est la plus souple, et c'est ce que j'ai adopté. Et c'est précisément là-dessus que la réécriture d'url coince en n'interprétant pas la balise multi des rubriques.

Or il n'y a aucun inconvénient en principe à définir plusieurs urls pour une seule rubrique15 par exemple, s'il y a changement de langue. Les urls libres ne permettent pas de définir plusieurs url pour une seule rubrique, et rajouter directement dans la table mysql les 2 url pour la même rubrique ne marche pas.

Bref, mon problème reste entier : avoir une url en russe sur une rubrique russe, et une url en français sur une rubrique française. J'ai l'impression qu'il n'y a pas de solution à ce jour.

mais je trouve ce choix bizarre, car une url russe sur un contenu français, ou l'inverse, c'est pas top !

ca, c'est dans le cas ou tu utilises une seule arborescence de rubriques et des contenus internationalisés avec <multi>, et dans ce cas, le "probleme" ne se pose que sur les rubriques (car dans ce cas, tu peux quand meme faire un article par langue et gerer les liens de traduction)

Quelqu'un sait-il si ceci doit être revu dans une prochaine version de SPIP, où s'il faut se résoudre à séparer les langues : secteur russe, secteur français... ?

tu le dit très bien : secteur russe, secteur francais... des rubriques differentes donc des urls differentes.

Peut être un plugin qui permettrait de résoudre ce point ?

avec les url libres, je pense qu'on peut supporter plusieurs urls, mais pas defaut, il doit y avoir une redirection sur la dernière (pour que google ne voit pas du "duplicate content" quand tu change d'adresse mais que l'ancienne reste active)

Le 12 déc. 2009 à 15:57, Nicolas Germain a écrit :

Bonjour,
j'ai un site franco-russe. J'ai les titres des rubriques définis avec des balises <multi>, la langue principale du site est le russe, et pourtant si je sélectionne propres2 pour avoir des urls propres, c'est l'url française qui sort dans la partie publique, langue russe sélectionnée.

Que faire ?

=> donc plutot faire 2 arborescences.
sinon, tu peux aussi faire un article virtuel avec le titre russe qui redirige vers ta rubrique en ajoutant lang=ru

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

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

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

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

Nicolas Germain a écrit :

Le 14 déc. 2009 à 11:17, Stephane a écrit :

Nicolas Germain a écrit :
    

J'ai lu quelque part que SPIP attribue une seule réécriture d'URL par identifiant de rubrique et d'article. Je comprends donc pourquoi la réécriture ne fonctionne pas correctement sur un site multilingue,
      

tout dépend de la structure du site.
    
En gros, y'a 2 structures possibles, soit on sectorise par langue, y'a des avantages et des inconvénients, soit on définit une seule hiérarchie de rubriques valable pour toutes les langues, et les articles sont des traductions d'articles de référence. Cette 2ème façon de faire est la plus souple, et c'est ce que j'ai adopté.

donc on parle bien uniquement des url propres des rubriques, pour les autres pas de probleme.

Et c'est précisément là-dessus que la réécriture d'url coince en n'interprétant pas la balise multi des rubriques.
  
il faut bien comprendre qu'il n'y a rien d'interprété.
A un instant T, on definit une url pour la rubrique, et au moment de l'acces à une url propre, Spip cherche dans la base à quel type d'objet ca correspond et son id et appelle le squelette correspondant en ajoutant l'id dans le contexte.

Or il n'y a aucun inconvénient en principe à définir plusieurs urls pour une seule rubrique15 par exemple, s'il y a changement de langue.

Et comment est connue la langue correspondant à l'url ?
Pour faire ce que tu veux, il faudrait ajouter un champ lang à spip_urls et au moment de la génération, créer plusieurs entrées quand on a un champ de type multi.
Ca pourrait faire un beau plugin, mais c'est pas un petit developpement...

Les urls libres ne permettent pas de définir plusieurs url pour une seule rubrique, et rajouter directement dans la table mysql les 2 url pour la même rubrique ne marche pas.
  
ben, en fait, si, normalement.
Sinon, j'ai fait un petit plugin urledit il y a quelques temps de ca qui permet la definition manuelle d'une ou plusieurs url (mais comme je le disais, en l'etat, ca fera unue redirection sur la dernière url entrée) mais ca n'orientera pas forcement sur la bonne langue (ca, ca depend aussi des squelettes, de l'utilisation ou pas de lang_select et/ou forcer_lang)

Bref, mon problème reste entier : avoir une url en russe sur une rubrique russe, et une url en français sur une rubrique française. J'ai l'impression qu'il n'y a pas de solution à ce jour.
  
ben je t'ai quand meme donné unue piste : faire un article virtuel avec l'url souhaitée qui pointe sur ?rubrique15&lang=ru

@++

Le 14 déc. 2009 à 14:20, Stephane a écrit :

Nicolas Germain a écrit :

Le 14 déc. 2009 à 11:17, Stephane a écrit :

Nicolas Germain a écrit :
   

J'ai lu quelque part que SPIP attribue une seule réécriture d'URL par identifiant de rubrique et d'article. Je comprends donc pourquoi la réécriture ne fonctionne pas correctement sur un site multilingue,
     

tout dépend de la structure du site.
   
En gros, y'a 2 structures possibles, soit on sectorise par langue, y'a des avantages et des inconvénients, soit on définit une seule hiérarchie de rubriques valable pour toutes les langues, et les articles sont des traductions d'articles de référence. Cette 2ème façon de faire est la plus souple, et c'est ce que j'ai adopté.

donc on parle bien uniquement des url propres des rubriques, pour les autres pas de probleme.

Et c'est précisément là-dessus que la réécriture d'url coince en n'interprétant pas la balise multi des rubriques.

il faut bien comprendre qu'il n'y a rien d'interprété.
A un instant T, on definit une url pour la rubrique, et au moment de l'acces à une url propre, Spip cherche dans la base à quel type d'objet ca correspond et son id et appelle le squelette correspondant en ajoutant l'id dans le contexte.

Or il n'y a aucun inconvénient en principe à définir plusieurs urls pour une seule rubrique15 par exemple, s'il y a changement de langue.

Et comment est connue la langue correspondant à l'url ?
Pour faire ce que tu veux, il faudrait ajouter un champ lang à spip_urls et au moment de la génération, créer plusieurs entrées quand on a un champ de type multi.
Ca pourrait faire un beau plugin, mais c'est pas un petit developpement...

Je crois qu'on est d'accord sur le constat, ce serait super si SPIP gérait ça en natif, où s'il y avait un plugin, car connaissant l'importance de la réécriture d'url pour le référencement et sachant que la langue est généralement un des grands critères de réécriture, je m'étonne simplement que ça n'ait pas été pensé comme ça dès l'origine.

Alors gros développement, je ne sais pas, car au moment où on construit la table des urls, on connaît forcément le numéro de la rubrique et la langue de l'utilisateur (ou la langue par défaut du site), et ensuite, quand on appelle l'url "Qui-sommes-nous", par exemple, on connaît l'id rubrique et la langue associée, et même chose dans les autres langues... Il faut aussi prévoir une option pour vider la table spip_urls, ce que le couteau suisse propose déjà.

En tout cas, merci Stéphane pour tes idées et pistes, bien que celle de l'article virtuel me semble délicat à manipuler par les rédacteurs en cas de changement de hiérarchie du contenu.

Les urls libres ne permettent pas de définir plusieurs url pour une seule rubrique, et rajouter directement dans la table mysql les 2 url pour la même rubrique ne marche pas.

ben, en fait, si, normalement.
Sinon, j'ai fait un petit plugin urledit il y a quelques temps de ca qui permet la definition manuelle d'une ou plusieurs url (mais comme je le disais, en l'etat, ca fera unue redirection sur la dernière url entrée) mais ca n'orientera pas forcement sur la bonne langue (ca, ca depend aussi des squelettes, de l'utilisation ou pas de lang_select et/ou forcer_lang)

Bref, mon problème reste entier : avoir une url en russe sur une rubrique russe, et une url en français sur une rubrique française. J'ai l'impression qu'il n'y a pas de solution à ce jour.

ben je t'ai quand meme donné unue piste : faire un article virtuel avec l'url souhaitée qui pointe sur ?rubrique15&lang=ru

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

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

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

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