Traductions de rubriques autrement

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

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom