Encontrar las « traducciones » de una sección

He aquí un método simple — sin palabras claves — para relacionar las secciones con el mismo contenido en diferentes idiomas.
Simula los enlaces entre las traducciones de los artículos encontrados por el criterio {traduction}

Los enlaces de traducción entre secciones no existen dentro de SPIP. Cuando uno piensa en un sitio como spip-contrib, los sectores de los distintos idiomas no tienen la misma estructura y los enlaces de traducción entre las secciones no tendrían mucho sentido.

Sin embargo, mucho sitios adoptan el multilingüismo duplicando la estructura del sector del idioma principal en los de otros idiomas. Entonces es útil y necesario darle al usuario una lista de enlaces hacia las otros idiomas de cada sección.

Si uno piensa adoptar en un sitio la estructura estricta descrita antes, las « traducciones » de una sección son en realidad secciones que contienen las traducciones de artículos de la sección original.

Hay una solución ingeniosa : hacer un bucle que encuentre estas secciones desde la lista de traducciones de los artículos que la sección actual contiene.

<BOUCLE_rub_pr(RUBRIQUES) {id_rubrique}>

Aqui el contenido habitual de la seccion

    <B_art_traduits>    

       aquí el texto precedente si hay una o más traducciones
    
    <BOUCLE_art_traduits(ARTICLES) {id_trad > 0} {id_rubrique} {par lang}>
        <BOUCLE_trad(ARTICLES) {traduction} {exclus}>
            <BOUCLE_rub(RUBRIQUES) {id_rubrique} {doublons}>
                <a href="#URL_RUBRIQUE">[(#LANG|traduire_nom_langue)]</a>
            </BOUCLE_rub>
        </BOUCLE_trad>
    </BOUCLE_art_traduits>
    
 Aquí el texto posterior si se encontraron traducciones-. 

    </B_art_traduits>

Aquí si no se encontraron secciones que contengan traducciones de artículos de esta sección. 

    <//B_art_traduits>


Aquí más contenido habitual de la sección

</BOUCLE_rub_pr>

El bucle rub_pr es el principal que determina cual es la sección que se está viendo acutalmente. Si editas tu esqueleto rubrique.html, ya tendras este bucle, probablemente con otro nombre

El bucle art_traduits lista los artículos de la sección. El criterio {id_trad > 0} nos permite obtener los artículos que tienen al menos una traducción. Este es el bucle que determina si habrá o no resultados de traducción de la sección. Si encuentra resultados, también mostrará los bloques opcionales (anterior y posterior al bucle).

El bucle trad busca las traducciones de los artículos, que, por el bucle anterior, se sabe que tienen alguna traduccion.

El bucle rub devuelve un enlace a la sección que contiene la traducción hallada. La utilización del criterio {doublons} asegura que no se mostrará más de una vez la misma sección.

Nota : Sin « ayuda externa » no hay forma de clasificar esta lista según algún criterio deseado. Directamente se muestra según el orden devuelto por el criterio {par lang} del bucle art_traduits.

La ayuda externa

Para resolver el problema del orden, se puede, desde la version [SPIP 1.8],
utilizar una nueva versión del criterio {traduction}
que cumplirá la misma función, con mas flexibilidad. Esto está basado en lo sugerido en el archivo

Le critère {traduction} étendu aux rubriques

, que se debe insertar en el
mes_fonctions.php3.

Entonces se podrá hacer directamente un bucle como el que sigue :

<BOUCLE_rub(RUBRIQUES)>
<hr>
#TITRE #ID_RUBRIQUE
<BOUCLE_trad(RUBRIQUES){traduction}>
<br />#PUCE #TITRE #ID_RUBRIQUE
</BOUCLE_trad>
</BOUCLE_rub>

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