Introduction
Comment traduire des sections autrement si SPIP ne propose pas nativement un système de traduction pour les rubriques ?
Le plugin Traduction entre rubriques (tradrub) comble cette lacune avec un système inspiré par celui des traductions des articles ; c’est à dire en ajoutant un champ id_trad à la table rubriques, et en liant ainsi les traductions des rubriques.
Le présent plugin modifie simplement la manière de gestion des traductions des rubriques proposé par le plugin Traduction entre rubrique (tradrub - plugin requis ) avec un solution similaire au plugin Traductions d’articles autrement, dont l’installation est recommandé (téléchargement ici) afin de pouvoir offrir une approche cohérente des traductions des rubriques et de la navigation entre les traductions des articles et rubriques.

Utilisation
Ce plugin trouve son utilité surtout dans un site avec des langues par secteur.
voici un exemple de liens de traductions pour rubriques, articles et autres (auteurs,sites,...) nécessite le plugin spip bonux
#CACHE{0}
[(#REM) Si on est dans le contexte d'un article, on affiche les langues des articles]
<BOUCLE_article(ARTICLES){id_article}>
<B_traductions>
<p class="traductions">
<BOUCLE_traductions(ARTICLES) {traduction} {par lang}{'|'}>[(#TOTAL_BOUCLE|>{1}|?{' '})
<span lang="#LANG" xml:lang="#LANG" dir="#LANG_DIR"[ class="(#EXPOSE)"]>
[(#EXPOSE{'',<a href="[(#URL_ACTION_AUTEUR{'converser',#LANG&var_lang=#LANG,[(#URL_ARTICLE|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]" rel="alternate" hreflang="#LANG"[ title="(#TITRE|attribut_html|couper{80})"]>})]
[(#LANG|traduire_nom_langue)]#EXPOSE{'',</a>}</span>
]</BOUCLE_traductions>
</p>
</B_traductions>
</BOUCLE_article>
[(#REM) Sinon, si on est dans le contexte d'une rubrique, on affiche les langues des rubriques]
<B_rubrique>
<p class="traductions">
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
<BOUCLE_traductions_rub(RUBRIQUES) {traduction} {par lang}{'|'}>
<span lang="#LANG" xml:lang="#LANG" dir="#LANG_DIR"[ class="(#EXPOSE)"]>
[(#ENV{lang}|=={#LANG}|non)<a href="[(#URL_ACTION_AUTEUR{'converser',#LANG&var_lang=#LANG,[(#URL_RUBRIQUE|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]" rel="alternate" hreflang="#LANG"[ title="(#TITRE|attribut_html|couper{80})"]>[(#LANG|traduire_nom_langue)]</a>]
[(#ENV{lang}|=={#LANG}|oui)[(#LANG|traduire_nom_langue)]]
</span>
</BOUCLE_traductions_rub>
</BOUCLE_rubrique>
</p>
</B_rubrique>
[(#REM) Sinon, si on on boucle sur les langues disponibles dans le public grâce à spip-bonux]
[(#SET{langues,[(#CONFIG{langues_utilisees}|explode{','}|serialize)]})]
<B_langue_possibles>
<p class="traductions">
<BOUCLE_langue_possibles(POUR){tableau #GET{langues}}{'|'}>
<span lang="#VALEUR" xml:lang="#VALEUR" dir="#LANG_DIR" [(#ENV{lang}|=={#LANG}|oui) class="on"]>
[(#ENV{lang}|=={#VALEUR}|non)<a href="[(#URL_ACTION_AUTEUR{'converser',#VALEUR&var_lang=#VALEUR,[(#SELF|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]" rel="alternate" hreflang="#VALEUR">[(#VALEUR|traduire_nom_langue)]</a>]
[(#ENV{lang}|=={#VALEUR}|oui)[(#VALEUR|traduire_nom_langue)]]
</span>
</BOUCLE_langue_possibles>
</p>
</B_langue_possibles>
<//B_rubrique>
<//B_article> Affichage squelettes
Il est possible de conditionner l’affichage des squelettes/noisettes en utilisant la balise
#ID_TRAD
par exemple, pour afficher une noisette déterminée seulement si on se trouve dans la rubrique 21 ou dans ses traductions. Il suffit de prendre l’id_rubrique de la rubrique de référence (celle qui a une * a coté du lien traduction - voir ci-haut) et qui est également l’id_trad.
Dans notre exemple, la rubrique de référence est la rubrique 21, donc l’id_trad est également le 21.
on utiliserai donc
[(#ID_TRAD|=={21}|oui)<INCLURE{fond=inc/noisette}/>]pour afficher inc/noisette.html pour la rubrique 21 et ses traductions



Traductions de rubriques autrement
Vos commentaires
# Le 27 mai 2011 à 05:32, par Bertrand
En réponse à : Traductions de rubriques autrement
Yop,
super, par contre j’ai du mal à saisir le fonctionnement car sur mon blog les articles en anglais et français apparaissent toujours ensemble ! Comment changer cela ?
# Le 27 mai 2011 à 12:59, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Bonjour,
Je ne comprends pas tout à fait le problème. Qu’est-ce que ça signifie ils apparaissent ensemble ? C’est un problème de l’interface interne ou du site public ?
Rainer
# Le 2 juin 2011 à 14:04, par Bertrand
En réponse à : Traductions de rubriques autrement
Salut,
et bien en fait dans l’interface interne j’ai créer mes rub en fr et je les ai traduite en anglais, idem pour mes articles. Mais lorsque je vais sur le site public, les deux articles fr et ang sont affichés sans distinctions.
Bertrand
# Le 3 juin 2011 à 08:32, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Tu peux me donner un lien ?
# Le 6 juin 2011 à 09:42, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Bonjour,
le menu par défaut de spip ne fonctionne as avec une structure basé sur les secteurs par langue, utilisé par ce plugin.
Il te faut copier le fichier squelettes_dist/inc-entete.html dans ton dossier squelettes puis remplacer
#MENU_LANGUEpar
Attention, il te faut installer le plugin spip-bonux pour que cela fonctionne
Afin de rediriger l’internaute directement sur la bonne rubrique, installe le plugin Langue préférée par l’internaute
Et remplace le contenu de ton squelette sommaire para la balise
#LANGUE_PREFEREE_SECTEUR_REDIRECTIONDis-moi si cela résous ton problème
Rainer
# Le 10 juin 2011 à 04:51, par Bertrand
En réponse à : Traductions de rubriques autrement
Bonsoir,
tout d’abord merci de ton aide et patience. Pour l’heure je n’ai pas créé de squelette la notion reste flou pour moi et j’utilise Zpip couplé à Zen Garden (bien que je n’utilise pas encore de thème pour l’instant). J’ai donc modifié le fichier squelettes_dist/inc-entete.html (l’autre occurence entete se trouve être /public_html/spip/plugins/auto/zpip/inclure/entete.html. Mais malheureusement cela ne change pas l’affichage, voici ce que mon fichier contient :
<div id="entete"><a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>" class="accueil">[(#LOGO_SITE_SPIP|image_reduire{300,100}) ]<strong id="nom_site_spip">#NOM_SITE_SPIP</strong></a>
<B_rub>
<div class="langue">
<ul>
<BOUCLE_rub(RUBRIQUES){id_rubrique}{tout}>
<BOUCLE_rubrique_trad(RUBRIQUES){traduction}{tout}>
[(#ENV{lang}|=={#LANG}|?{<li>[(#LANG)]</li>,<li><a href="[(#URL_ACTION_AUTEUR{'converser',#LANG&var_lang=#LANG,[(#URL_RUBRIQUE|parametre_url{lang,'','&'})]})]">[(#LANG)]</a></li>})]
</BOUCLE_rubrique_trad>
</BOUCLE_rub>
</ul>
</div>
</B_rub
</div>
++
# Le 10 juin 2011 à 09:32, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Bonjour, alors dans ce cas, crée à la racine de ton site un dossier nommé squelettes, dedans tu crée le dossier inclure dans lequel tu copie le fichier « zpip/inclure/entete.html ».
Ce nouveau fichier squelettes/inclure/entete.html surchargera alors zpip/inclure/entete.html
et maintenant tu peux faire, les modifications décrite ci-haut
Rainer
# Le 14 juin 2011 à 02:34, par Bertrand
En réponse à : Traductions de rubriques autrement
Bonsoir,
idem... Il y a définitivement quelques choses que je ne comprend pas :-/
# Le 14 juin 2011 à 08:22, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Ce week-end j’étais sur ton site et j’ai vue que le menu de langue fonctionnait, donc quel est actuellement ton problème ?
Répondre à ce message
# Le 3 juin 2011 à 09:11, par RODRIGUEZ
En réponse à : Traductions de rubriques autrement
Sur mon site internet, j’ai besoin d’un retour des utilisateurs,
de leur avis sur le site.
Existe t-il un plugin qui réalise cela ?
Celui-ci me donnerait la possibilité de mettre en ligne ou non les commentaires des visiteurs !!
J’ai supprimé le forum public car je recevais des spams en quantité importante d’un site chinois !!
Quelqu’un pourrait-il m’aider ?
Je lui en serait très reconnaissant
# Le 3 juin 2011 à 09:21, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Bonjour,
je crois que tu t’est trompé de forum, pose ta question plutôt sur le forum de spip
Mais concernant ton problème.
Normalement le forum de spip est idéal pour ce que tu décris, les problèmes de spam peuvent normalement être résolu corrigé en utilisant la dernière version de spip.
Pour améliorer la protection antispam tu peux installer le plugin NoSpam qui me donne des bons résultat ou bien la lame antispam du couteau suisse
Rainer
Répondre à ce message
# Le 7 janvier 2011 à 18:47, par Matthieu Marcillaud
En réponse à : Traductions de rubriques autrement
Bonjour,
Je viens juste d’installer TAA et TRA pour tester.
Je note que dans ce plugin (TRA), un système d’installation est présent. Deux choses :
sql_alter("TABLE spip_formulaires_reponses DROP page");, qui doit être une erreur de copier coller je suppose ! Enfin, je ne vois pas le rapport avec ce plugin :)À suivre :)
# Le 7 janvier 2011 à 18:57, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Tu as tout à fait raison, le plugin tradrub s’en charge déjà.
Je viens d’enlever le système d’installation, ce qui corrige en même temps l’erreur du copier coller de la désinstallation
# Le 7 janvier 2011 à 20:10, par Matthieu Marcillaud
En réponse à : Traductions de rubriques autrement
Parfait...
Je continue mon exploration
Quelques bugs
fr / étendre spip / généralités. Si « étendre spip » est traduit en espagnol, mais pas généralités, et que dans la rubrique généralités, je clique « espagnol », la rubrique de création de ma nouvelle rubrique espagnole est par défaut la rubrique racine (’es’), et non, disons, la plus proche traduction connue dans la hiérarchie des rubriques.fr / étendre spip / généralités / un article(page?exec=articles&id_article=xx), un article fr qui n’a pas de traduction espagnole me retourne une erreur SQL :Erreur SQL 1064You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
SELECT lang FROM spip_rubriques WHERE id_rubrique=
. Je pensais que c’était la fonction
rubrique_traduction()qui ne vérifie pas que$id_rubriqueexiste bien, mais il semble que ce n’est pas cela. Par ailleurs, la requête devrait utiliser de préférencesql_quote():Surcharges
inc/article_afficher_contenu.php, mais c’est peut-être la seule solution pour réaliser tout ce que tu souhaitais.Bilan
bravo :)
# Le 7 janvier 2011 à 20:50, par Matthieu Marcillaud
En réponse à : Traductions de rubriques autrement
J’ai corrigé l’erreur SQL.
# Le 8 janvier 2011 à 12:49, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Merci pout tes tests et commentaires exhaustives.
J’ai corrigé le bug concernant la détection des id_parents de traductions et ajouté les sql_quote.
Je vais prendre en compte tes commentaires pour le plugin taa
# Le 8 janvier 2011 à 13:53, par Rainer Müller
En réponse à : Traductions de rubriques autrement
Merci pour tes modifications du plugin taa.
j’ai mis les langues non-traduites en italique, en plus du background.
le plugin n’affiche le mode "édition seulement" si l’auteur a effectivement les droits d’éditions sur l’article, sinon c’est la prévisualisation par défaut qui s’affiche.
Je ne suis pas sur de comprendre. Le formulaire édition apparaît juste après les liens de langue et avant la date, tu trouverai plus logique de mettre la date en dessus ?
J’ai suivis ton conseil et remplacé le + par l’image deplierbas.gif et le - par deplierhaut.gif puis je les ai mis dans la colonne traductions.
# Le 8 janvier 2011 à 14:31, par Matthieu Marcillaud
En réponse à : Traductions de rubriques autrement
Pour la date de publication, c’est que visuellement, je n’ai pas d’espace entre le bas du formulaire d’édition et le haut du cadre de date de publication. Un margin à ajouter probablement.
# Le 8 janvier 2011 à 14:45, par Rainer Müller
En réponse à : Traductions de rubriques autrement
ok, j’ai rajouté un marge
Répondre à ce message
# Le 4 janvier 2011 à 08:19, par chris
En réponse à : Traduction de rubriques autrement
Impossible d’activer le plugin ../plugins/traduction_rubriques_autrement
Nécessite le plugin TRADRUB en version [2.1.0 ;] minimum.
On le trouve ou TradRub ?
# Le 4 janvier 2011 à 08:39, par ?
En réponse à : Traduction de rubriques autrement
Tu peux le télécharger ici : http://files.spip.org/spip-zone/tradrub.zip
Répondre à ce message