Navigation dans un site multilingue

Fonction pour la gestion d’un contenu multilingue

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Fonctions de ce filtre :

Naviguer entre plusieurs traductions d’articles

Ce filtre est le résultat de plusieurs discussions sur la liste de diffusion de spip-dev et spip-user sur la gestion de contenu pour des sites multilingues

il permet de générer le passage d’une langue à l’autre, tout en vérifiant que les articles ont bien le statut publié...

Comment ça marche ?

Le webmaster peut prévoir un secteur par langue, les auteurs feront attention, lors de la rédaction des tradutions d’articles, d’ajouter dans le SURTITRE un lien vers les autres traductions.

exemple :
-  je prépare une traduction de l’article n°1, dans le surtitre du nouvel article, j’écris fr=1.
-  Si l’article 1 a déjà d’autres traductions, je n’oublie pas d’ajouter ces liens séparés par une virgule.
-  En final, nous avons dans le champ SURTITRE : fr=1,en=4,de=8
Lien vers l’article n°1 en Français, l’article n°4 en Anglais et l’article n°8 en Allemand.

le filtre fournit interprète l’information du surtitre et met en place un lien hypertexte.

Inconvénient :
Lors de l’ajout d’une nouvelle traduction, il faut mettre à jour tous les surtitres.

Avantages :
En attendant une réelle version multilingue de spip, on peut créer relativement facilement des liens vers des traductions...


Comment installer le filtre ?

  1. Téléchargez les fichiers joints et lisez les instructions

OU

  1. Copiez-collez le script ci-dessous dans votre fichier mes_fonctions.php3
  2. Ajoutez ce petit bout de code dans le squelette des articles [(#SURTITRE|navig_trad)]
  3. Téléchargez vos images de drapeau dans le répertoire /ecrire/lang/.

Note : Le noms des images doit être de la forme :
-  spip_fr.gif pour le français
-  spip_en.gif pour l’anglais
La seule différence étant le code langue composé de deux lettre.

/*
 *   +----------------------------------+
 *    Nom du  Filtre :  navig_trad
 *   +----------------------------------+
 *    Date : mercredi 22 janvier 2003
 *    Auteur :  Jean-Pierre KUNTZ
 *        alias Coyote
 *   +-------------------------------------+
 *    remerciements à 'Fil, 'Aboubacar', 'sent-ig' 
 *    pour l'inspiration
 *   +-------------------------------------+
 *    Fonctions de ce filtre :
 *     Naviguer entre plusieurs traductions d'articles
 * 
 *     Ce filtre est le résultat de plusieurs discussions
 *     sur la liste de diffusion de spip-dev et spip-user
 *     sur la gestion de contenu pour des sites
 *     multilingues
 * 
 *     il permet de générer le passage d'une langue à
 *     l'autre, tout en vérifiant que les articles ont
 *     bien le statut publié...
 *     
 *     pour utiliser le lien vers les traductions
 *     incluses dans le SURTITRE
 *     ex: fr=5,en=10
 * 
 *     Inconvénient majeur : 
 *     à chaque nouvelle traduction il faut changer tous les surtitres.     
 *
 *     Les fichiers .gif sont a placer dans le
 *     répertoire /ecrire/lang/
 * 
 *     Source des fichiers GIF utilisés en exemple :
 *     phpMyChat - localization pack    
 *     http://sourceforge.net/project/showfiles.php?group_id=19371
 *
 *     Et voilà comment appeler la fonction... 
 *     dans le fichier article.html
 *     [(#SURTITRE|navig_trad)]
 *     
 *   +-------------------------------------+ 
 *  
 * Pour toute suggestion, remarque, proposition d'ajout
 * reportez-vous au forum de l'article :
 * http://www.uzine.net/spip_contrib/article.php3?id_article=134
 */

 function navig_trad($trad){
   $traductions = explode( ",", $trad);
   $array = explode( ",", $trad);
   sort($array);
     $res =count($array);
     $i =0;
     while($i<$res)
     {
       $flag = explode( "=", $array[$i]);
       $query = "SELECT statut,titre FROM spip_articles WHERE id_article = $flag[1];";
       $result = spip_query($query);
       if ($result){
         while ($row = spip_fetch_array($result)){
           if ($row['statut'] == 'publie'){
             $texte = $texte."&nbsp;<a href='article.php3?id_article=".$flag[1]."'\><img src='ecrire/lang/spip_".$flag[0].".gif' border='0' ALT='".$row[1]."'\></a\>";
           }
         }
       }
       $i++;
     }
     return $texte;
 }
 
 // FIN du Filtre navig_trad

Source des fichiers images utilisés en exemple :
phpMyChat - localization pack

Dernière modification de cette page le 11 février 2007

Discussion

Aucune discussion

Ajouter un commentaire

Qui êtes-vous ?

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