[Résolu] Problème de sommaire - Site multilingue

Bonjour,

J’avale et remâche toute la doc sur le multilinguisme depuis quelques jours. Mais je cale sur cette question que je vais tenter de formuler clairement.

Site en 5 langues.
Une langue par secteur.
Je veux que cela ouvre sur le secteur FR, disons : la rubrique 1.

J’ai installé une redirection pour que l’on tombe direct sur la rubrique 1.
Pour son squelette, rubrique=1, j’ai copié le squelette du sommaire de la dist que j’ai un peu adapté à ma sauce.

Pour les pages de « sommaire » des autres secteurs, j’ai juste dupliqué rubrique=1 en rubrique=2 pour faire un sommaire en espagnol, puis en rubrique=3 pour le sommaire en portugais, etc.

Mais ces duplications renvoient toutes les chaines de langues en FR quelque soit le secteur.
Ce problème n’existe que sur ces sommaires bricolés.

Lorsque je navigue dans les articles et rubriques des diverses langues, les fichiers de « chaînes de langues » se traduisent parfaitement.

J’imagine (mais je ne sais pas si j’imagine bien…) que la réponse doit se trouver dans le « head » et/ou le « header ». Les voici donc :

et le header :

Capture d’écran 2023-09-01 à 00.03.50

Merci de votre aide !

Cordialement

Oup’s ! Je croyais que « code » et son acolyte fermante permettait de noter du code sans rien perdre, je vois que ce n’est pas le cas ici… Bon ! J’ai mis des copies d’écran.

Il faut utiliser ce bouton dans Discuter :
image

1 « J'aime »

Quelques questions pour comprendre un peu mieux : version de SPIP ? Version de php ?
Et quel squelette utilises-tu (qui fonctionne bien sauf les pages « bricolées ») ?

Par ailleurs je ne réponds pas à la question mais je me demande pourquoi tu as besoin de faire des rubriques différentes pour chaque secteur de langue ? Il n’est pas suffisant d’avoir des chaines de langue ? (pour moi avoir un secteur de langue permet de ranger les articles et leurs traductions pour mieux s’y retrouver)

Le site est en SPIP 4.2.4 et PHP 8, donc à la pointe de la modernité :wink:

J’ai construit ce site il y a 11 ans en SPIP 3 avec les squelettes EVA dont le développement a été stoppé donc pas compatible avec SPIP 4. Le site a été hacké (vidé) car pas à jour.

La réinstallation est faite. Et je tente cette fois d’adapter la dist pour répondre à mes besoins.

L’organisation par secteurs de langue m’a semblé la plus simple pour ranger et classer le millier d’articles en 5 langues. Mais aussi, selon ce que j’ai lu, pour gérer le multilinguisme. Cela fonctionne partout - sauf sur mes « sommaires » (et une autre question que je formulerai dans un autre post).

Pour plus de lisibilité, je remets les extraits de code cités dans mon message principal (merci à RealET) :

Le « haut » de ma page « sommaire » du secteur espagnol (rubrique=2) qui n’affiche pas les chaînes de langue en espagnol :

<!DOCTYPE html>
<html dir="#LANG_DIR" lang="#ENV{lang}" class="[(#LANG_DIR)][ (#ENV{lang})] no-js">
<head>
	<script type='text/javascript'>/*<![CDATA[*/(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);/*]]>*/</script>
	<title>[(#NOM_SITE_SPIP|textebrut)][ - (#SLOGAN_SITE_SPIP|textebrut)]</title>
	[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|attribut_html)" />]
	<INCLURE{fond=inclure/head} />
</head>

<body class="pas_surlignable page_sommaire">
<div class="page">

	<INCLURE{fond=inclure/header,env,home=oui} />

et son header :

<header class="clearfix header" role="banner">
	
	[(#ENV{home,'non'}|=={oui}|?{
	[(#LOGO_SITE_SPIP_SURVOL|image_reduire{*,220})]
	[(#INCLURE{fond=inclure/menuder})]
	})]
	
</header>

Oui je suis d’accord ! Mais pour l’affichage, pourquoi as-tu besoin d’une rubrique par secteur ? Qui utilise donc squelettes_par_rubriques. Est-ce que ça ne suffirait de rajouter un critère {lang} (pour n’afficher que les articles de la langue dans l’environnement) dans tes boucles ? (c’est ce que j’ai fait sur un site bilingue) et éventuellement utiliser les <multi> pour des menus ou autres objets non gérés

Je souhaite que chaque internaute dispose d’un « sommaire » dans sa langue sur ce modèle :

le fait d’avoir le nom des langues comme noms de secteur donne une approche simple et intuitive pour la navigation :

Je vous remercie pour vos suggestions, mais avant de tout modifier, j’aimerais savoir s’il n’y a vraiment aucune solution à mon problème actuel dans la configuration que j’indique ici. :wink:

Bonjour
perso je construis mes sites multilingues avec une langue par secteur et je n’ai qu’un squelette sommaire ou toutes les boucles comprennent {lang} et je transmet la variable de langue à tous les includes + un fichier de traduction par langue pour les termes et phrases statiques

avec les plugins : Secteur par langue, langue préférée, menu langue (le plugin menu à un sélecteur de langue)

Je voulais tester cela et vois que « Secteur par langue » n’est pas compatible avec SPIP 4.2.
Savez-vous si c’est prévu ?

changez la borne

Euh… c’est quoi la borne ?

Je change « compatibilité » dans « paquet » ?

Oui dan le paquet et si cela fonctionne le dire sur Issues - secteur_langue - SPIP on GIT par exemple pour que ce soit rajouter.

Bonjour,

Je n’ai jamais fait ce genre de choses…
Je suis davantage dans la famille des bidouilleurs que dans celle de ceux qui savent vraiment ce qu’ils font…

Deux questions :

1 - pour la ligne compatibilité, cela irait, ça ?
compatibilite="[3.2.0;4.1.;4.2.*]"

2 - Et si cela « ne fonctionne pas » , il y a un risque pour mon site ?
Parce que, je ne saurai pas « réparer »…

Merci de votre aide.

Bonjour
pas de risque
mettez plutôt : compatibilite="[3.2.0;4.2.*]"

1 « J'aime »

Bon !
J’ai déjà installé « langue préférée » et « menu langue ».

Je viens d’activer le plugin « Secteur par langue ».
Rien n’a explosé :wink:
Mais rien n’a changé pour autant dans le site…
Les secteurs ne retournent toujours pas les chaînes de langues dans la langue du secteur.
Et je ne remarque aucun autre effet.

Je dois peut-être ajouter quelque chose dans les squelettes pour faire vivre « Secteur par langue »…
Mais je ne trouve pas de doc pour ce plugin…

Bonjour
désolée j’ai oublié le plugin Traduction entre rubriques

J’AI TROUVÉ !!!

Merci pour tous vos retours et suggestions de plugins que j’ai tous installés, qui m’ont permis d’apprendre plein de choses, et ont apporté des nouveautés très appréciables, mais pas tout à fait ce que je recherchais dans mon appel initial.

Je viens de trouver la méthode pour avoir mes 5 pages d’accueil chacune dans sa langue avec toutes les chaînes de langue fonctionnant bien !

Je suis partie du dernier paragraphe de cette page : La langue de l'environnement - Programmer avec SPIP 4

Mon raisonnement :
On peut « forcer la langue » pour un #INCLURE ?
Alors mettons toute la page dans un #INCLURE et voyons ce que cela donne !

Ma « rubrique=1 » en français (langue principale du site) reste inchangée.
Je l’ai copiée/collée intégralement dans un fichier « rubrique_som.html » placé dans « inclure ».

Pour ma « rubrique=2 » qui est un sommaire en espagnol, j’ai juste mis :
[(#INCLURE{fond=inclure/rubrique_som}{id_rubrique}{lang=es})]

Pour les autres langues : même contenu pour les autres « rubrique=xx » en changeant juste les deux lettres pour la langue. Et je pense - en me relisant - qu’il serait judicieux que « rubrique=1 » ne contienne également que la ligne #INCLURE afin qu’il n’y ait qu’un seul fichier à modifier en cas de besoin : « inclure/rubrique_som.html ».

Je ne sais pas si tout cela est très « spipien » :wink:
Mais, cela fonctionne !

Un IMMENSE MERCI encore une fois à SPIP et à tous les spipeurs qui prennent du temps pour répondre aux bidouilleurs de mon genre :wink:

PS : je n’ai pas le petit crayon pour modifier le titre et y placer [Résolu]…