SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 241 visiteurs en ce moment

Accueil > Multilinguisme > Traductions de rubriques > Traduction de rubriques autrement > Traductions de rubriques autrement

Traductions de rubriques autrement

3 janvier 2011 – par Rainer Müller – 23 commentaires

15 votes

Navigation entre rubriques traduites et gestion des traduction des rubriques similaire à la méthodes des traduction des articles du plugin Traductions d’articles autrement.
(voir aussi pour SPIP 3 Traductions de rubriques autrement 3)

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 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 rubriques 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.

Menu/liens des traductions

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

Dernière modification de cette page le 30 novembre 2015

Retour en haut de la page

Vos commentaires

  • Le 25 juin 2013 à 13:44, par Fennec72 En réponse à : Traductions de rubriques autrement

    J’ai ajouté un modèle de liens de traductions pour les rubriques.

    À moins que je ne me trompe, il n’existe pas de modèle SPIP pour les liens entre traductions de rubriques, à l’instar de celui pour les liens entre traductions d’articles.

    J’en ai donc créé un :

    La différence avec celui pour les articles est minime et se limite à faire référence aux rubriques et non aux articles :

    l’insertion dans le squelette article :

    [(#REM) Inclure le modele des liens de traductions ]
                    #MODELE{rubrique_traductions}

    Le modèle rubrique_traductions.html à placer dans squelettes/modeles/ :

    [(#REM)
            Affiche les traductions disponibles d'une rubrique.
            La langue de la rubrique courante s'affiche en gras, sans lien.
    ][(#REM)

            Note : le lien <a rel="alternate" hreflang="xx" ...> indique qu'il
            s'agit d'une traduction (version alternative dans la langue xx)

    ]<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
    <B_traductions>
    <p class="traductions">
            <:trad_rubrique_traduction:>
            <BOUCLE_traductions(RUBRIQUES) {traduction} {par lang}>[(#TOTAL_BOUCLE|>{1}|?{' '})
            <span lang="#LANG" xml:lang="#LANG" dir="#LANG_DIR"[ class="(#EXPOSE)"]>&#91;[(#EXPOSE{'',<a href="#URL_RUBRIQUE" rel="alternate" hreflang="#LANG"[ title="(#TITRE|attribut_html|couper{80})"]>})][(#LANG|traduire_nom_langue)]#EXPOSE{'',</a>}&#93;</span>
            ]</BOUCLE_traductions>
    </p>
    </B_traductions>
    </BOUCLE_rubrique>

    Reste l’ajout d’entrées dans les fichiers de langues placés dans squelettes/lang/ :
    Dans public_fr.php :
    'trad_rubrique_traduction' => 'All the versions of this rubrique',

    Dans public_en.php :
    'trad_rubrique_traduction' => 'Toutes les versions de cette rubrique',

    • Le 25 juin 2013 à 13:47, par Fennec72 En réponse à : Traductions de rubriques autrement

      Petite erreur que vous aurez corrigée vous même :

      Reste l’ajout d’entrées dans les fichiers de langues placés dans squelettes/lang/ :
      Dans public_fr.php :
      'trad_rubrique_traduction' => 'Toutes les versions de cette rubrique',

      Dans public_en.php :
      'trad_rubrique_traduction' => 'All the versions of this rubrique',

    Répondre à ce message

  • 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_LANGUE

      par

      1. <B_rub>
      2. <div class="langue">
      3. <ul>
      4. <BOUCLE_rub(RUBRIQUES){id_rubrique}{tout}>
      5. <BOUCLE_rubrique_trad(RUBRIQUES){traduction}{tout}>
      6. [(#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>})]
      7. </BOUCLE_rubrique_trad>
      8. </BOUCLE_rub>
      9. </ul>
      10. </div>
      11. </B_rub

      Télécharger

      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_REDIRECTION

      Dis-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 :-/

      1. <div class="accueil">
      2. [<a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>">(#LOGO_SITE_SPIP||image_reduire{300,100})</a>]
      3. <strong id="nom_site_spip"><a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>">#NOM_SITE_SPIP</a></strong>
      4. [<div id='slogan_site_spip'>(#SLOGAN_SITE_SPIP|PtoBR)</div>]
      5. </div>
      6. <B_rub>
      7. <div class="langue">
      8. <ul>
      9. <BOUCLE_rub(RUBRIQUES){id_rubrique}{tout}>
      10. <BOUCLE_rubrique_trad(RUBRIQUES){traduction}{tout}>
      11. [(#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>})]
      12. </BOUCLE_rubrique_trad>
      13. </BOUCLE_rub>
      14. </ul>
      15. </div>
      16. </B_rub

      Télécharger

    • 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 :

    • il semble inutile, vu que tradrub s’en charge déjà.
    • la désinstallation supprime 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

      • j’aime *vraiment* bien le lien vers les changements de traduction sous le titre de l’article.
      • Les langues non traduites ne se différencient pas assez à mon goût
      • l’option « article toujours en édition » ne me plait pas trop (parce que quelqu’un peut avoir l’autorisation de voir l’article dans le privé sans pouvoir le modifier) (mais bon, c’est une option). + La « date de publication » colle le formulaire en bas.
      • L’option « affichage reduit » est pratique. Le bouton [+] bien trop difficile à cliquer (préférer une image ?) et mal placé pour déplier : je le placerais plutôt dans la colonne traductions justement.

      Quelques bugs

      • Mon site de test (l’équivalent de programmer.spip.org) a une langue par secteur, et chaque secteur a un arbre de rubriques traduites, par exemple : 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.
      • sur quelque chose comme : 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 1064
        You 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_rubrique existe bien, mais il semble que ce n’est pas cela. Par ailleurs, la requête devrait utiliser de préférence sql_quote() :

        1. $id_trad_parent = sql_getfetsel('id_trad','spip_rubriques','id_rubrique=' . sql_quote($id_rubrique));

      Surcharges

      • il reste à mon sens une surcharge, c’est le code source de la page de visualisation d’un article qui est presque entièrement repris dans 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.

      Les langues non traduites ne se différencient pas assez à mon goût

      j’ai mis les langues non-traduites en italique, en plus du background.

      l’option « article toujours en édition » ne me plait pas trop (parce que quelqu’un peut avoir l’autorisation de voir l’article dans le privé sans pouvoir le modifier)

      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.

      + La « date de publication » colle le formulaire en bas.

      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 ?

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Adaptive Images

    15 novembre 2013 – 69 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Social tags

    8 septembre 2008 – 428 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

Ça spipe par là