[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 24073 Sujets résolus :  39 %

67 visiteurs en ce moment


Accueil > Forums de discussion >  Administration, gestion, configuration du site > site multilingue : changer de page sans changer de langue

site multilingue : changer de page sans changer de langue

par aniko - 7 mai 2013 23:43 - Réponse(s) : 25

Bonjour,

je travaille sur un site bilingue et je gère systématiquement les traductions en utilisant des blocs "multi". J’ai donc qu’une seule arborescence, et mon but est de pouvoir naviguer dedans dans une ou dans l’autre langue.

En étant sur une rubrique ou article je peux changer la langue sans problème. Mais dès que je change de rubrique/article, la nouvelle rubrique vient dans la langue principale du site... alors que j’aimerais qu’on reste sur la dernière langue utilisée. Autrement dit je veux changer juste la page, mais pas la langue.

Comment faire ?

Merci d’avance pour vos réponses !!


  • Bonjour,

    Avec un lien vers la page en question, ça serait plus facile d’étudier le problème.


  • Bonjour,

    jusqu’à maintenant j’ai travaillé en locale. Suite a la suggestion de Fa_b j’ai donc décidé de le mettre en ligne.

    ... et j’y ai travaillé toute la journée... en vain.

    J’utilise Spip 3.0.5.
    J’ai essayé les deux types de déménagements :
    1. de transférer tous les fichiers, sauf le config/connect.php et vider le repertoire tmp en gardant que le tmp/dump/bd.sqlite
    2. installer un Spip vierge, transfere la base de donnée

    Mais dans les deux cas, dès que je clique sur "restaurer la base", je perds l’interface administrateur du site privé, et je vois affiché

    Site en travaux
    Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

    Ensuite, si je tape comme adresse
    monsite/ecrire
    je peux de nouveau entrer dans le site, mais il est dans l’état d’avant la restauration... en tout cas il n’y a aucun article etc dans la base de données.

    Du coup, je galère sur la mise en ligne... et je ne peux même pas vous illustrer mon problème de multilinguisme.

    Si vous pourriez m’aider... ca serait tellement cool.


  • Bonjour,

    Essayez déjà de faire une mise à jour en local vers la 3.08 déjà.
    Puis retentez le Dump vers votre spip tout neuf distant (en 3.08 aussi)

    Ensuite si ça ne fonctionne pas :

    • faites un dump de votre base via phpmyadmin en local.
    • supprimez les tables en "spip_" via phpmyadmin de votre serveur distant (tous les prestataires ou presque le fournisse)
    • importer le dump toujours via le phpmyadmin distant.

    Il ne vous restera plus qu’à transférer vos dossiers "squelettes", "plugins", "IMG".

    Enfin c’est ce que je fais à chaque fois que je déménage un site en Spip (ou autre d’ailleurs) ;)


  • Bonjour et merci pour les suggestions !

    J’ai essayé de faire l’export de la base de donné locale par le phpmyadmin locale et de l’importer par le phpmyadmin distant... et ca ne marche pas non plus.

    En faite j’ai une message sur le bas de la page de mon phpmyadmin distant :

    "La connexion au controluser tel que défini dans votre configuration a échoué."

    et je soupçonne que c’est ca qui m’empêche de restaurer la base. Ce qui ne m’est pas 100% clair après avoir consulté des pages sur internet : est-ce que je peux corriger cette "configuration de la connexion au controluser" moi-même, ou bien il faut que je contacte mon hébergeur ?

    Merci !


  • De ce que je crois comprendre vous n’auriez pas tous les droits d’usage sur votre base, ce qui est dommage. Effectivement, un petit mail à votre hébergeur serait pas mal.

    Cela étant je n’ai pas été très précis la fois d’avant, il faut exporter et importer les tables de la base et non la base elle même, pendant l’import possible qu’il cherche à créer une base avec le même nom que celle de votre localhost, si votre hébergement ne l’autorise pas, cela peut expliquer le message d’erreur.

    À suivre.


  • Rebonjour,

    finalement j’ai changé de serveur d’hébergement, et sur ce nouveau serveur la restauration de la base s’est passé sans souci... ouff !

    Le site "en développement" est donc en ligne a l’adresse suivante :
    http://www.ens-lyon.fr/RDP/developpement

    La langue principale du site est francais actuellement.
    Dans config/mes_options.php j’ai :
    $GLOBALS[’forcer_lang’] = true ;

    Une fois le site distant installé (par la méthode 1), j’ai fait des essais concernant mon problème initiale : j’aimerais qu’on puisse naviguer sur le site soit en anglais soit en francais, mais une fois que l’utilisateur a choisi une langue, je veux qu’il reste avec cette langue jusqu’a ce qu’il ne la change pas lui-meme dans le menu.

    Et je constate deux comportements différents lors de la connexion sur le site distant a partir de deux ordis (navigateurs ?) différents :

    Ordi1 :
    - on tombe sur la page d’accueil en anglais
    - naviguer en anglais : pas de souci, "lang=en" est affiché dans l’adresse
    - naviguer en français : on change de langue dans le menu, la page est traduite, mais dès qu’on change de page, on revient sur anglais, "lang=fr" est affiché dans l’adresse

    Ordi2 :
    - on tombe sur la page d’accueil en francais
    - naviguer en francais : pas de souci, pas d’affichage concernant la langue dans l’adresse
    - naviguer en anglais : on change de langue dans le menu, la page est traduite, mais dès qu’on change de page, on revient sur francais, "lang=en" est affiché dans l’adresse

    Et ce que je trouve encore plus bizarre, c’est que sur le site locale l’Ordi1 se comporte comme l’Ordi2 sur le site distant ! Alors que je n’ai absolument rien changé ni sur les configurations de mon navigateur sur l’Ordi1 ni dans les fichiers du site que j’ai tout simplement copié sur le serveur distant.

    Alors... comment assurer qu’on puisse naviguer dans les deux langues sans souci ?

    Merci !!!


  • Une piste :
    http://contrib.spip.net/Plugin-Langue-preferee-par-l-internaute

    Ou bien ajouter sur les liens des différents menu, la lang de l’environnement afin de transmettre la langue à chaque clic.
    Un truc du genre

    1. |parametre_url{lang,#ENV{lang}}

    (à tester)


  • Rebonjour et merci,... mais :

    dans ce plugin "langue préférée..." ils disent tout de suite qu’il faut avoir les langues définies par secteur... alors que j’ai un site avec une seule arborescence et je compte utiliser des blocs multi pour toute traduction dans un même rubrique/article.

    je pencherais donc vers une solution, qui peut effectivement récupérer la langue de l’environnement et le passer "a la page qu’on ouvre"... mais est-ce qu’il n’y a pas quelquechose de plus générale que de le faire sur chaque lien de la page ?

    Par exemple, je vois dans rubrique.html (que j’ai récupéré de Sarka-spip) que tout au début il y a référence aux langues par

    1. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">

    Comment peut-on assurer de manière "générale" que la valeur de #LANG est la langue qui etait utilisée "avant" ?


  • Rebonjour,

    effectivement, pour les menus, en mettant pour les liens systématiquement

    href="[(#URL_ARTICLE{2}|parametre_url{lang,#ENV{lang}})]"
    href="[(#URL_RUBRIQUE{2}|parametre_url{lang,#ENV{lang}})]"

    ca marche bien pour les liens de la squelette.

    Ca c’est déjà très bien ! Mais si les utilisateurs veulent insérer des liens vers des articles contenant des blocs multi, comment remplacer

    [texte->rubrique2]
    [texte->art2]

    au milieu d’un article, pour que la navigation dans une langue ne soit pas interrompue ?

    Donc j’essaye encore d’insister : est-ce qu’il n’y a pas quelquechose de plus générale ? Comme une sorte d’alias, qui remplacerait tout "lien" en générale par un "lien qui garde la langue" ? ... Je m’excuse pour la facon primitive de poser des questions...

    Merci en tout cas infiniment, votre aide !


  • Bonjour a tous !

    je repose ma question :

    a l’intérieur des articles, lors de l’insertion des liens internes au site, comment faire pour garder la langue choisie par l’utilisateur ?

    Je pense a des blocs multi du genre

    1. <multi>
    2. [fr]
    3. ceci est en francais [et je veux y rester->artXX&lang=fr]
    4. [en]
    5. ceci est en anglais [et je veux y rester->artXX&lang=en]
    6. </multi>

    Télécharger

    Mais ca ne marche pas tel quel. Comment dois-je corriger ce code ?

    Merci beaucoup !!


  • Bonjour !

    ce qui fonctionne pour l’intérieur des articles, c’est d’insérer le codes html, de la manière suivante :

    1.  
    2. <multi>
    3. [fr]
    4. ceci est en francais <html><a href=spip.php?articleXX&lang=fr>et je veux y rester</a></html>
    5.  
    6. [en]
    7. ceci est en anglais <html><a href=spip.php?articleXX&lang=en>et je veux y rester</a></html>
    8. </multi>

    Télécharger

    Mais il n’y a vraiment pas quelquechose de plus simple et generique ? En restant en spip ?


  • Pour appliquer un paramètre à l’ensemble de la page il existe
    #FILTRE : http://www.spip.net/4894


  • Bonjour,

    j’ai essayé de mettre la ligne suivante au début des fichiers article.html et rubrique.html

    1. #FILTRE{parametre_url{lang,#ENV{lang}}}

    ...mais ca ne fonctionne pas.

    Qu’est-ce qu’il faudrait écrire et où pour que dans toutes les pages, chaque fois qu’il y a un lien, la page cible soit ouverte dans la langue choisie par l’utilisateur dans le menu de langue de la page actuelle ?

    Merci beaucoup pour votre aide !


  • Je suis trop débutant pour te donner la solution ici, et pourtant elle fonctionne parfaitement sur le site que j’ai fait pour un ami :
    http://lesbungalowsdelacaroline.com (4 langues, et navigation dans chacune sans aucun changement non souhaité)
    C’est mon ’formateur SPIP’ qui a codé ’comme il faut’, et ce n’est qu’en lui posant la question que je saurai la solution.
    Je lui demande donc de venir jeter un coup d’oeil à ton sujet, ce sera le plus simple.... ;)
    Bonne Pentecôte....


  • PS : si en passant sur "les bungalows" vous avez un problème d’affichage du formulaire de réservation, ce sera sympa de jeter un coup d’oeil à "mon sujet sur cette question".... ;)


  • Pour le plaisir de s’activer les neurones..... deux avis :
    1. page à lire sur le sujet : http://www.spip.net/fr_article2124.html

    2. sur mon site, le choix des langues se fait par le clic sur chaque drapeau, actions codées dans le bloc suivant :

    <div id="entete">
        <div id="langues">
        <a href="#URL_SITE_SPIP/"><img src="squelettes/images/0FRA.gif" heigth="50" alt="FRA" title="FRA" /></a><br />
        <a href="#URL_SITE_SPIP/?lang=en"><img src="squelettes/images/0GBR.gif" heigth="50" alt="GBR" title="GBR" /></a><br />
        <a href="#URL_SITE_SPIP/?lang=de"><img src="squelettes/images/0DEU.gif" heigth="50" alt="DEU" title="DEU" /></a><br />
        <a href="#URL_SITE_SPIP/?lang=es"><img src="squelettes/images/0ESP.gif" heigth="50" alt="ESP" title="ESP" /></a>
        </div>
    </div>

    Je pense donc que le "#URL_SITE_SPIP/ ?lang=xy" suffit ensuite à stabiliser la navigation DANS la langue concernée ??? (sous réserve de confirmation par mon formateur dès qu’il viendra lire....)
    Salut


  • Bonjour dodovolant,

    tout d’abord merci infiniment d’essayer de m’aider !

    Je pense que dans les lignes que tu m’envoies on dit que lors du clic sur ces images de drapeau la page suivante qui s’ouvre soit dans la langue demandée. (jusqu’ici ca fonctionne pour moi aussi)

    Le problème est qu’une fois sur cette page dans la bonne langue, si on fait un clic sur un AUTRE lien, j’aimerais pouvoir garantir de garder cette langue... et ca ne fonctionne toujours pas !

    J’ai espéré vraiment que la combinaison des conseils de Valérie et de Fa_b dans la ligne

    1. #FILTRE{parametre_url{lang,#ENV{lang}}}

    en la placant dans article.html et rubrique.html fonctionnerait, mais non... je n’ai pas d’autre idée.

    Dis, dodovolant, si tu es la : tu as qu’une seule arborescence et tu gères les langues avec des blocs multi ? Ou bien tu as autant de secteurs que de langues ?

    (PS. pour ton site, dodovolant, je n’ai pas de souci pour l’affichage du formulaire... mais je suis aussi sur Ubuntu)


  • Alors, effectivement, selon les termes de mon "formateur spip" j’ai mis QUATRE arborescences sur mon site à savoir une par langue (donc 4 pages ’sommaire’)
    Je n’utilise les ’blocs multi’ essentiellement que pour les légendes des photos de la galerie qui ne sont donc chargées qu’une fois chacune...
    Et du coup je confirme que où qu’on soit sur le site, le clic sur un autre drapeau passe ’la même page’ dans la nouvelle langue, ainsi que le menu, et qu’on est alors "installé dans cette langue" jusqu’à un autre changement de drapeau....

    PS pour l’autre site, c’est finalement sur le "livre d’or" que j’ai le problème.... toujours en cours de test....
    Salut


  • Bonjour,
    J’ai le même soucis depuis le passage en spip3. Tant qu’on navigue en français tout va bien, mais si on choisit l’anglais, la page courante est traduite, mais dès qu’on clique sur un autre lien on revient en français.
    Je n’avais pas ce problème avec spip2. Une fois une langue choisie, on y restait...


  • Je viens de trouver la solution :
    Il faut créer un fichier mes_options.php dans le dossier config de spip qui contient le code suivant :
    <?php 
    $forcer_lang 
    true
    ?>

    Il faut ensuite vider le cache, recalculer la page et ça marche.


  • Bonjour,
    j’ai créé un site multilingue en créant 2 rubrique fr et en.
    tout fonctionne correctement, mais lorsque je clique sur un des drapeau pour changer de langue, cela me renvoie à la page sommaire et non à la page sur laquelle je suis. comment faire ?
    voici mon code :

    1. <div id="langues">
    2.  
    3. <a href="#URL_SITE_SPIP/?lang=fr">
    4. <img src="squelettes/images/fr.jpg" alt="français" /></a>
    5. <a href="#URL_SITE_SPIP/?lang=en" >
    6. <img src="squelettes/images/en.jpg" alt="english" /></a>
    7.  
    8. </div>

    Télécharger


  • Ton code renvoie effectivement vers la home.
    Qu’entends-tu par "la page sur laquelle je suis" ? Tu es sur une rubrique ou un article ? Tu veux afficher la traduction de l’article, c’est ça ?


  • Bonjour,
    si ça peut t’aider j’ai suivi une récente "formation perso" sur spip avec un "pro du truc". Il m’a aidé à réaliser un site en 4 langues pour un copain, les changements de langues se font bien "dans la page de menu où on est", et je te mets le code correspondant "aux drapeaux".

    <div id="entete">
        <div id="langues">
        <a href="#URL_SITE_SPIP/"><img src="squelettes/images/0FRA.gif" heigth="50" alt="FRA" title="FRA" /></a><br />
        <a href="#URL_SITE_SPIP/?lang=en"><img src="squelettes/images/0GBR.gif" heigth="50" alt="GBR" title="GBR" /></a><br />
        <a href="#URL_SITE_SPIP/?lang=de"><img src="squelettes/images/0DEU.gif" heigth="50" alt="DEU" title="DEU" /></a><br />
        <a href="#URL_SITE_SPIP/?lang=es"><img src="squelettes/images/0ESP.gif" heigth="50" alt="ESP" title="ESP" /></a>
        </div>
    </div>

    Tu peux le voir à l’adresse :
    lesbungalowsdelacaroline


  • Avec toutes mes excuses..... j’étais persuadé qu’on restait sur la même page, or ça retourne bien (comme toi) à "l’accueil" de chaque langue....
    Je viens donc de consulter mon formateur qui confirme que c’est "possible mais très compliqué", ce qui est facile à comprendre ;) puisqu’il faudrait que ton "clic-drapeau" récupère d’abord l’info de la page où tu es pour l’entrer en paramètre de l’action....
    Donc excuse le "faux conseil" par trop d’optimisme (et mauvaise mémoire ! mdr...).....
    Le dodo tropical
    nivoyousnisoumis


  • Ce qui est compliqué c’est la prise en compte des traductions. Le problème se pose souvent au niveau des rubriques, pas des articles. Pour celles-ci, j’utilise le plugin "traduction des rubriques autrement" qui facilite la vie :

    http://contrib.spip.net/Traductions-de-rubriques-autrement

    Et puis si ça se trouve le plugin "Menu de langues sous forme de lien" correspond exactement à ce que tu recherches :

    http://contrib.spip.net/Menu-de-langues-sous-forme-de-liens


  •  


Répondre à la question

« site multilingue : changer de page sans changer de langue »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?

  • Impossible d'éditer un auteur (site existant importé)

    par kikinovak
    25 juin 12:48

    Résolu - Réponse(s) : 3

    J’ai fini par trouver. En fait il s’agit d’un SPIP considérablement modifié, avec pas mal de plugins tiers, dont un qui posait problème. Ça venait d’un bug dans une version personnalisée du fichier (...)

  • Site inaccessible selon les browsers

    par abel
    23 juin 08:01

    Réponse(s) : 2

    Merci pour ta réponse :) Donc les navigateurs auraient une tolérance différentes selon le temps de chargement de la page ? Parce-que ceux qui ne chargent pas le site ne le font jamais, et sur (...)

  • Fonction "recherche d'adresse" de GIS cassée sur sites récents

    par b_b
    16 juin 11:44

    Résolu - Réponse(s) : 3

    Pour info, la version 4.43.6 de GIS devrait corriger ce problème, cf : https://zone.spip.org/trac/spip-zone/changeset/104884 ++

  • numérotation incohérente ?

    16 juin 09:49

    Résolu - Réponse(s) : 1

    Réponse trouvée si ça intéresse quelqu’un : la base de donnée Mysql du fournisseur d’accès numérote les enregistrements par pas de 3... Obligation donc de réécrire les squelettes en les compliquant un (...)

  • Site multilingue déféctueux

    par Didine
    16 juin 06:46

    Réponse(s) : 1

    Bonjour, Par défaut la page traduite créée est en français, il faut donc vérifier que ta page dans le secteur anglais a bien comme langue l’anglais. Sinon pour afficher la bonne page selon la langue (...)

  • Erreur système (errno 130)

    par erational
    5 juin 08:17

    Réponse(s) : 3

    Peut-on connaitre le nom de l’hébergeur ? Si tu as des bases en données en plus ? Si oui, tu peux essayer de cloner ta base et la brancher sur la nouvelle base ? Tiens nous au (...)

  • installation de themes

    30 mai 18:36

    Réponse(s) : 9

    La 1ere question du #6 est sans réponse. Celà pourrait aider à résoudre ton prob.

  • bug après avoir essayé de vider le cache

    par arcadiamo
    26 mai 18:34

    Réponse(s) : 4

    Merci , mais j’essayerai quand j’aurais résolu l’accès au serveur FTP car là je n’ai accès a rien du tout.

  • Une erreur technique a empêché l'enregistrement correct du champ 'date_lim'

    par laetitia
    24 mai 17:57

    Réponse(s) : 2

    en continuant mes recherches, je suis tombée sur un post intéressant dans lequel on parle de l’« affichage des calendriers des dates comme dans l’interface privée et à faire en sorte que le (...)

  • Probleme d'encodage en base de données

    par erational
    25 mai 12:30

    Réponse(s) : 2

    le plugin grenier peut parfois aider : https://contrib.spip.net/Convertir-un-site-SPIP-3-en-utf-8-avec-le-plugin

  • Messages : 29607
  • 8700 34 %
  • Poser une nouvelle question