Préambule
holaaaaaaaaaa !!!
Ce plugin a été initié par Renato en 2009. Son « cœur » est le fichier multilang.js. A l’origine il ne fonctionnait que sur les pages d’édition des rubriques. Le fichier multilang.js était stocké dans prive/javascript mais sans être utilisé nulle part dans le core... Manque l’historique du pourquoi. Une version dérivée de ce fichier existe aussi dans le plugin « Forms&Tables ».
Description
Le traitement consiste à rajouter un menu de langues du type [fr] [en] [it] au dessus de chaque formulaire, en fonction des langues activées dans la configuration du site. Le clic sur une langue, bascule le contenu de tous les champs éligibles du formulaire dans la langue choisie. Le résultat est sauvegardé sous la forme « multi » de spip, à savoir <multi>[fr]texte français[en]English text</multi>
. Si le plugin est désactivé, l’ensemble reste donc compatible spip. C’est donc juste une aide à la rédaction.
Installation
Récupérez le zip du plugin sur l’espace de téléchargement de la Zone : https://files.spip.net/spip-zone/mu.... L’installation se déroule ensuite comme pour tous les autres plugins, cf. https://www.spip.net/fr_article3396.html
Pour fonctionner, ce plugin requiert également l’installation :
Attention
Les pages qui comportent beaucoup de formulaires (comme par exemple un article avec 80 documents joints et qu’on n’utilise pas le plugin Médiathèque) peuvent être longues à s’exécuter et générer des timeout d’execution de scripts au niveau du navigateur. Le nombre de langues est également un facteur important de ralentissement. Avec un grand nombre de langues, mieux vaut gérer le multilinguisme sur les articles en utilisant le système de traduction d’articles fourni avec SPIP.
Fonctionnement
Une fois activé, tous les champs input:text et textarea sauf ceux des forms .form_upload et .form_upload_icon sont traites dans les objets suivants (et suivant la configuration du plugin) :
- articles
- rubriques
- configuration du site
- auteurs (intéressant uniquement pour le champs BIO)
- documents dans les colonnes de gauche des pages d’édition d’articles et de rubriques
- documents dans les parties basses des pages de présentation des articles et rubriques
- mots clés et groupe de mots clés
- sites
- brèves
Un champ « numéro » est rajouté au dessus des champs #titre (articles, rubriques, mots clés) et #titre_documentXX pour saisir le numéro de l’objet (sans le point qui est rajouté automatiquement)
Une image est rajoutée en background de chaque champs traité et indique son état :
- no multi : pas de multi dans le champ
- multi (barré) : multi désactivé dans ce champ
- multi fr : texte affiché actuellement en français
- multi en : texte affiché actuellement en anglais
Dans le menu des langues, un item « Tout » est rajouté en dernier. Il permet de visualiser le contenu des champs du formulaire sans le traitement « Multilang » et donc de copier le contenu (mais de modification possible)
Si un des champs du formulaire contentant une structure multi, contient une valeur de langue non renseignée, ladite langue est surlignée dans le menu des langues.
Champs éligibles :
- input:text
- textarea
- select
- ... ?
Les champs contenant du texte (autre que espace, tab, retour) en dehors de la structure multi ne sont pas traités (image « multi barré » en background). Par exemple :
du texte avant
<multi>[fr]texte[en]text</multi>
et du texte après
Intégration dans d’autres plugins
D’une manière générale et dans toutes les pages de l’espace privé, le plugin est actif : dès qu’il trouve un champ de class « multilang », il rajoute un menu de langues au « form » parent.
A faire... ou pas
- Le faire fonctionner avec les crayons
- Le faire fonctionner avec la lame « Tout Couleur » du couteau suisse
Discussions par date d’activité
33 discussions
Bonjour,
Je suis tombé sur un gros bug avec le formulaire d’édition des documents : https://git.spip.net/spip-contrib-extensions/multilang/issues/2 (perte des multi en cas de changement du fichier du document)
Répondre à ce message
Bonjour,
J’ai installé et paramétré le plugin pour les articles.
Il ne fonctionne pas (SPIP 3.2.7 et PHP 7.2).
Avez-vous une piste ?
Est-il incompatible avec d’autres plugins ?
Merci
Répondre à ce message
Bonjour, je viens de mettre à jour mon site SPIP et par conséquent les plugins
J’utilise « Multilang » & « Interface de traduction pour objets »
Seulement, le changement d’interface rend, l’emploie des deux plugins en parallèlle vraiment perturbant, car beaucoup trop similaire on ne comprend plus rien. (voir screenshoot joint, la zone A correspond à interface de traduction pour objects, la zone B à multilang)
C’était bien mieux avec le petit menu discret d’avant.
Mais au delà de ce souci esthétique, mon plus gros problème, viens du fait que j’aimerai désactiver « Multilang » pour les articles et ne les garder que pour les rubriques, mais sans succès. Lorsque je décoche article dans configuration du plugin, je n’ai aucun changement.
Avez vous constatez cela aussi ?
Merci d’avance.
Et dans la suite, je n’arrive pas à activer le plugin sur les mots clés ou groupe de mot clés. Malgré la case coché dans la configuration.
Au ca sou liste des plugins activé sur mon site :
Analyclick 0.3.4 - test
Authority 0.12.0 - stable
Automatic backup 1.2.6 - stable
Control API 1.9.5 - stable
CVT Upload 1.18.0 - test
Déclarer le parent 1.3.5 - dev
Duplicator 2.0.6 - stable
Entries for forms 3.30.0 - stable
Extra fields 3.12.4 - stable
Extra fields (Interface) 3.5.8 - stable
Formidable 3.46.7 - stable
Home article 1.2.2 - stable
Interface de traduction pour objets 1.1.5 - test
LESS CSS 1.4.4 - stable
MailCrypt 2 2.4.5 - stable
minibando 1.3.10 - stable
Multilang 1.4.3 - stable
NoSPAM 2.1.3 - test
Pencils 1.26.19 - stable
Postman 3.7.2 - stable
Raccourci Accordéon 1.0.5 - test
Rang 1.0.13 - test
Recycle bin 3.1.2 - stable
Rubriqueur 2.1.1 - stable
SPIP Bonux 3.5.4 - stable
YAML 2.0.11 - test
Pour le point 2), il y a un cache d’1 semaine sur le javascript qui gère le menu de langue, il faut sans doute vider le cache pour voir un changement de config tout de suite.
Pour le point 1), je plaide coupable votre honneur !
Suite à des retours utilisateurs qui avaient des soucis avec l’ancien menu (pas assez visible et libellés peu clairs), j’ai mis une petite couche de peinture.
Efectivement, le menu est assez ressemblant avec celui de traduction par objets.
Cela dit, dans quel cas de figure y a-t-il besoin d’avoir à la fois les balises
<multi>
et les « vraies » traductions sur un même objet ?Besoin je ne sais pas ^^
Mais perso il m’arrive souvent de faire des sites multi avec les rubriques commune à toutes les langues, (donc utilisant multi) et des articles traduit.
Peut etre est ce une mauvaise pratique ?
Ah ok, oui dans ce cas, je comprends le besoin d’avoir les 2 plugins en même temps. Je sais pas si c’est une bonne pratique ou pas, mais je comprends :)
Par contre je ne vois pas de solution simple au niveau interface pour ce cas de figure : il faut bien afficher 2 menus de langues différents, et il n’y a pas de raison d’en rendre un des 2 « moins visible » que l’autre. En tout cas pour multilang, ça pénaliserait les utilisateurs qui ne l’utilisent pas en conjenction avec l’autre plugin, ce qui je pense est la majorité des cas (mais j’ai pas de stats sous la main).
Répondre à ce message
Bonjour,
Merci à vous pour cette contrib géniale que j’utilise massivement sur mes sites !
Depuis une mise à jour récente, multilang ne fonctionne plus dans les crayons (dans l’interface publique). La console de mon navigateur est pleine d’erreur JS.
Merci d’y jetter un oeil à l’occasion !
Jul
Bonjour,
Merci pour le retour, je confirme, ce sera corrigé dès que possible.
C’est corrigé dans la 1.4.4 qui sera publiée bientôt (mais pas aujourd’hui : on n’a pas de serveur :p)
Très bien, j’attends donc la 1.4.4 avec impatience ;)
Répondre à ce message
Souci qui vient d’apparaître, qui empêche l’usage de ce plugin (parfait, par ailleurs, que j’utilise depuis des années), qui ne vient peut-être pas du plugin lui-même.
Voici le problème bloquant : lorsqu’il crée la chaîne :
<multi>[fr]texte_fr[en]texte_en</multi>
Eh bien, maintenant, au lieu de [en] il met [nglis]. Bizarre...
Du coup, ça ne marche plus !
PS : c’est apparu chez moi après la mise à jour du 15/11/2019. Mais maintenant, même si je remet une version précédente du plugin, le problème reste le même.
Le problème s’est réglé, peut-être parce que, dans la configuration du plugin j’ai sélectionné les deux langues :
Répondre à ce message
Bonjour
La traduction semble ne pas fonctionner pour les crédits des images.
Les documents sont bien cochés dans la config du plugin.
Le titre et la description sont bien traduits.
Mais les crédits sont laissés tels quels :
et cela m’affiche [fr]Crédits : Observatoire d’Arecibo[en]Credits : Arecibo Observatory sous mon image
Je précise que dans l’interface privée, multilang semble bien fonctionner : j’ai bien le « no multi » quand la traduction n’est pas faite, et les « multi fr » et « multi en » quand je demande une langue.
C’est uniquement dans le rendu (à la fois dans l’interface privée et publique)
Hello, c’est très certainement car la balise Credits n’est pas traitée de la même manière.
Peux tu essayer quelquechose du genre dans un fichier mes_options.php :
$GLOBALS['table_des_traitements']['CREDITS']['documents'] = 'extraire_multi(%s, "TYPO", $connect, $Pile[0])';
Répondre à ce message
Bonjour,
le plugin Multilang ne fonctionne pas sur « groupe de mots clés » il me semble. Je n’ai pas les raccourcis typographique pour changer de langue.
Bonjour Julien,
Tu avais raison. J’ai corrigé ça en même temps que le passage en 3.2.
MM.
Merci beaucoup ! :)
Super merci marcimat, je m’étais gardé cela pour le week end ;)
Répondre à ce message
Petit souci de mise en page, il manque la classe « editer » sur le li du champ numéro (pour les champs numérotables), il faut rajouter la classe « editer » lignes 375, 378 et 381 du fichier javascript/multilang.js
ex ligne 375 :
.before('<li class="editer editer_'+numid+'"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /></li>');
Ces classes ont été ajoutées par la révision 98267 de la zone http://zone.spip.org/trac/spip-zone/changeset/98267/
Répondre à ce message
Avec ce plugin, pourrait-on avoir la possibilité de restreindre l’affichage des langues à certains utilisateurs ? Dans l’espace privé uniquement.
Ou c’est un autre plugin qu’il faudrait faire ?
Julien.
Du coup il faudrait brancher un système d’autorisation dessus. Mettre peut être une autorisation simpliste au minimum qui retourne true tout le temps et que tu surchargerais dans un fichier d’options
Tu peux essayer cela et l’envoyer sur la zone si ça fonctionne
Répondre à ce message
Bonjour j’ai un souci avec le plugin. lorsque j’ai une entrée dont la traduction est la même dans plusieurs langues par exemple, la balise multi que l’on vois lorsqu’on clique sur tout, se contente de la version dans la langue d’origine. Ce qui dans l’absolu ne me gène pas.
En revanche sur le site public il ajoute dans le cas là avant mon titre un qui me retourne uen erreur W3C.
Sauriez vous comment résoudre ce comportement pour éviter que ne s’ajoute ce span inutile ? Merci.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |