[spip-dev] Comment selectionner les articles/rubriques... de la même langue?

Bonjour

Cette question à déjà été posée, sans suites.

S'il était possible de pouvoir séléctionner des articles ou tout autre objets selon la langue de l'article (ou la rubrique) en cours, alors Spip serait vraiment multilingue.

Les améliorations dans Spip 1.7 permettent uniquement de faciliter la traduction d'articles, c'est très bien.

Par contre, il faut encore passer par des groupes de rubriques pour séparer les langues, et c'est insupportable.
Cela multiplie le nombre de squelettes d'autant, on perd en souplesse, autant passer par les mots clefs non?
(avec le système actuel, on économise une boucle MOTS)

Mettons nous d'accord sur une syntaxe.
Dites moi comment obtenir la valeur de la langue de la page dans inc-calcul-squel.php3 au niveau des lignes 260 environs.

Je propose que la syntaxe soit proche de {lang=}
ce pourrait être {lang} tout simplement.

Qu'en pensez-vous?

Cela permettrait tout simplement de pouvoir afficher une liste d'articles d'abord dans la langue de l'article actuel, puis, à côté, de placer les liens vers les traductions, puis, à la suite de la liste, les articles qui n'ont pas de traductions.
On peut obtenir ce résultat avec des {unique} et des {exclus}... mais, on ne peut plus se servir de ces articles ailleurs puisqu'ils ont déjà été selectionné.
Il faut donc mémoriser la liste dans un tableau PHP, ce qui complique vraiment tout.
On perd en souplesse.

A un filtre près, Spip commençait vraiment à être multilingue.

Je pense aussi à tout ceux qui ont déjà un gros site monolingue, qui en attendant, doivent créer des rubriques supplémentaires et dupliquer leurs squelette, les modifier, se casser vraiment la tête.

Je n'arrive à récuperer la valeur de la langue du site au niveau de la ligne 260, alors qu'elle semble être cacluler dans le même fichier au niveau de la ligne 1097 (mes lignes ont bougées).

Cordialement
Grégoire

Bonsoir Grégoire,

Pour répondre à certaines de mes attentes, comme les tiennes à juste titre
d'ailleur,
je me suis penché sur le problème.
Comme l'optique principal de SPIP est de gérer une langue par rubrique à la
racine,
c'est donc tout naturellement que je me suis contreint à migrer mon ancienne
version
monolangue SPIP 1.6.
Cela aura bien entendu demandé certaines contraintes, telles que des
dupplications
de sous-rubrique, mais enfin le résultat est là.
Et avec un mixe des deux contributions suivantes

Site public dans la langue préférée du navigateur
http://www.uzine.net/spip_contrib/article.php3?id_article=322

Une page d'accueil dans la bonne langue pour chaque visiteur
http://www.uzine.net/spip_contrib/article.php3?id_article=63

Cela donne un résultat plutot interessant !
Mon site perso: http://www.laurent-laville.org

Je compte d'ailleurs dès demain (enfin dans quelques heures maintenant)
publier
sur SPIP_CONTRIB le détail de ma solution : un phpLang utilisable avec SPIP
1.7
sans rewrite-rules d'Apache, mais juste une pincée de php et des boucles
SPIP.

A+
Laurent

"Gregoire" <gobmouch@online.fr> a écrit dans le message de news:
btvai4$l4o$1@sea.gmane.org...

Bonjour

Cette question à déjà été posée, sans suites.

S'il était possible de pouvoir séléctionner des articles ou tout autre

objets selon la langue de l'article (ou la rubrique) en cours, alors Spip

serait vraiment multilingue.

Les améliorations dans Spip 1.7 permettent uniquement de faciliter la

traduction d'articles, c'est très bien.

Par contre, il faut encore passer par des groupes de rubriques pour

séparer les langues, et c'est insupportable.

Cela multiplie le nombre de squelettes d'autant, on perd en souplesse,

autant passer par les mots clefs non?

(avec le système actuel, on économise une boucle MOTS)

Mettons nous d'accord sur une syntaxe.
Dites moi comment obtenir la valeur de la langue de la page dans

inc-calcul-squel.php3 au niveau des lignes 260 environs.

Je propose que la syntaxe soit proche de {lang=}
ce pourrait être {lang} tout simplement.

Qu'en pensez-vous?

Cela permettrait tout simplement de pouvoir afficher une liste d'articles

d'abord dans la langue de l'article actuel, puis, à côté, de placer

les liens vers les traductions, puis, à la suite de la liste, les articles

qui n'ont pas de traductions.

On peut obtenir ce résultat avec des {unique} et des {exclus}... mais, on

ne peut plus se servir de ces articles ailleurs puisqu'ils ont déjà

été selectionné.
Il faut donc mémoriser la liste dans un tableau PHP, ce qui complique

vraiment tout.

On perd en souplesse.

A un filtre près, Spip commençait vraiment à être multilingue.

Je pense aussi à tout ceux qui ont déjà un gros site monolingue, qui en

attendant, doivent créer des rubriques supplémentaires et dupliquer

leurs squelette, les modifier, se casser vraiment la tête.

Je n'arrive à récuperer la valeur de la langue du site au niveau de la

ligne 260, alors qu'elle semble être cacluler dans le même fichier au

Bonjour Laurent

Oui, c'est justement gràce à ton ancien message que j'ai su où modifier et quoi modifier.
Les deux otpions m'interessent, mais surtout mon besoin (tu comprend :wink: )

Afficher les articles dans la langue du navigateur, c'est super.
Mais si l'utilisateur change d'avis? et regarde un article dans une autre langue?
Voici un exemple, une liste d'articles consultables (pour passer d'un article à un autre)

Quelle couleur? [english]
Bonjour [english]["0ù$]
Course en voiture //article non traduit

Si l'utilisateur clic sur un lien de traduction, il obtiend:

What color? [Français]
Hello [Français]
Course en voiture

J'ai donc listé les articles qui étaient d'abord dans la même langue, puis ceux non traduits dans cette langue (quelque soit la langue), donc, dans leur langue d'origine.

On peut l'obtenir avec des {doublons} et {traducitons}{exclus}
or, j'utilise très souvent deux listes, une comme celle-ci, et, une autre organisés différenement, notement avec {1/3}, {2/3} et {3/3} qui donne un très mauvais résultat avec {doublons}

Ce qui serait bien, c'est les deux possibilités, (selection selon la langue du navigateur,selection selon la langue de l'article), surtout que l'on peut surement combiner les deux ensembles.
Si je suis obligé de passer dans des rubriques avec des langues différentes, je suis ennuyé, mes squellettes sont déjà assez compliqués comme

ça, et, rajouter des boucles pour attraper les autres articles non traduits... c'est un enfer.

Surtout qu'il suffit juste que l'on trouve la variable qui contiend le code langue de l'article en cours de lecture, et un peu modifier tes lignes.
Mais je n'y arrive pas, je n'ai pas le niveau.

Avec espoir.
Grégoire

Cela donne un résultat plutot interessant !
Mon site perso: http://www.laurent-laville.org

Intéressant en effet !

<parano>
Attention toutefois à:

$var_lang = $_POST['def_lang'];

qu'il me semblerait préférable de modifier en:

$var_lang = ($_POST['def_lang'] == "fr" || $_POST['def_lang'] == "en") ?
$_POST['def_lang']:"fr";
</parano>

Patrice