SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Multilinguisme > Navigation multilingue > Traduction d’items

Plugin « Traduction » V2

samedi 16 février 2008, par Xavier T.. Dernier ajout lundi 19 mai 2008


Plugin permettant la gestion des traductions multilangues coté site public


Après avoir réalisé plusieurs sites multilingues (et pas mal galéré dessus), je me suis penché sur un problème majeur ... la gestion du multilinguisme coté site public.

La question était la suivante : comment gérer les fichiers de langue (local_#LANG) sans avoir à les faire « à la main » au fur et à mesure de l’avancée de la programmation du site et permettre de « sectoriser » les mots et petits textes à traduire afin de ne pas avoir, au bout de quelques jours, des listes imbuvables de plusieurs dizaines (voire même centaines) de mots dans lesquelles on ne peut s’y retrouver !!!

J’ai donc créé ce petit plugin qui vous permet de pouvoir gérer cela très facilement.

Si vous avez déjà installer la V1 du plugin, la mise à jour se fait automatiquement et sans douleur !

Effectuer la mise à jour :
- Désactivez le plugin dans votre interface
- Remplacez la V1 par la V2
- Réactivez le plugin ... le reste se fait tout seul !!!

Effets de la mise à jour :
- Les traductions présentes dans les différentes tables sont ajoutées dans la table principale après ajout des champs de langue dans cette dèrnière
- Suppression des tables des langues
- Suppression des champs de langues dans la table des secteurs

Modifications depuis la V1 :
- Plus que 2 tables à la place de 3 à n tables selon le nombres de langues utilisées sur le site
- Repérage de la langue native du site en rouge dans le menu de gauche
- Blocage des ajouts de secteurs et d’item si l’interface n’est pas dans la langue native du site (pour éviter aux traducteurs d’avoir la main sur ses parties sensibles du plugin)
- Lors de la saisie d’un item, une vérification automatique se fait évitant ainsi des items trop courts (3 caractères minimum) ainsi que les doublons, votre item est OK si le carré à droite du champ de saisie de l’item est vert, sinon vous ne pouvez pas valider votre item
- 1 seule langue (la langue native) pour la gestion des secteurs
- Interface plus intuitif pour les traducteurs proposant pour chaque item le descriptif et la "valeur" dans la langue native

Révisions

V2.1

- Un petit bug s’était glissé lors de la réalisation de la V2 depuis la V1, du coup, la création des fichiers de langues posait problème.
- Bug rectifié grâce à la vigilance de bobMorane ... merci

Installation

L’installation se déroule comme pour tous les autres plugins, cf. http://www.spip.net/fr_article3396.html

Celui ci va créer les tables nécessaires dans la base SPIP ainsi que les fichiers de langues dans le dossier « squelettes ».

Gestion des secteurs

Commencez par créer vos secteurs :
- le descriptif vous permet de vous repérer dans les différents secteurs que vous aller créer
- vous nommez ensuite le secteur, vous pouvez n’utiliser qu’une langue à ce niveau là, pensez tout de même à vos traducteurs le cas échéant !!!
- vous pouvez toujours revenir sur un secteur créé en le sélectionnant dans la liste en dessous du formulaire de saisie

Création et édition des items

Il suffit ensuite de sélectionner la langue de base du site dans la liste de gauche pour accéder au menu de création des items, dans le formulaire de saisie :
- « item à traduire » correspond au « mot » que vous aller placer sur vos squelettes avec le code multi <:mot_a_traduire:> [1]
- vous avez ensuite le descriptif pour vous y retrouver
- puis la « traduction » qui correspond à ce qui sera affiché sur votre site
- pour accédez à la liste complète des « mots » d’un secteur il suffit de cliquer sur le secteur souhaité dans la liste en dessous du formulaire de saisie.

Gestion des traductions

A partir de cet écran, vous pouvez gérer vos items de traduction et obtenir aussi les items au format SPIP à insérer dans vos squelettes, soit les actions :
- changer une traduction : en modifiant directement la valeur dans les champs de texte.
- modifier un item : en cliquant sur « modifier » (on ne peut pas changer l’item de traduction lui même, ce qui est logique car s’il est utilisé sur le site, cela ne correspondra plus, mais on peut changer son secteur et son descriptif)
- supprimer un item

Voilà, je ne suis pas très fort en explications, mais j’espère que vous aurez compris comment fonctionne mon plugin.

pour le télécharger c’est juste là !!!

Zip - 27.6 ko
Traduction V2.1

Portfolio

Notes

[1] Plus d’explication sur l’usage de ce code dans la documentation officielle Internationaliser les squelettes (paragraphe « 1. Méthode des fichiers de langue »)


Répondre à cet article

  • Plugin « Traduction » V2

    19 mai 2008 16:55, par bobMorane

    Très beau travail, j’ai toutefois rencontré des problèmes au démarrage de la V2, ça pourra certainement servir à d’autres : fichier php_ajax.php il faut remplacer les lignes 4 à 12

    $Lister_mots = "select * from spip_traductions" ;
    $Result_Lister_mots = spip_query_db($Lister_mots) ;
    $Row_Lister_mots = mysql_fetch_assoc($Result_Lister_mots) ;
    do
    $lister_traductions = "select * from spip_traductions_".$langue." where id_traduction = ".$Row_Lister_mots[’id_traduction’] ;
    $Result_lister_traductions = spip_query_db($lister_traductions) ;
    $Row_lister_traductions = mysql_fetch_assoc($Result_lister_traductions) ;
    $liste_item .= "’".$Row_Lister_mots[’item_traduction’]."’ => ’".addslashes($Row_lister_traductions[’item_traduction_langue’])."’,\n" ;
    while($Row_Lister_mots = mysql_fetch_assoc($Result_Lister_mots)) ;

    par

    $lister_traductions = "select * from spip_traductions where $langue != ’’ " ; $Result_lister_traductions = spip_query_db($lister_traductions) ; while($Row_lister_traductions = mysql_fetch_assoc($Result_lister_traductions)) $liste_item .= "’".$Row_lister_traductions[’item_traduction’]."’ => ’".addslashes($Row_lister_traductions[$langue])."’,\n" ;

    c’est certainement un petit oubli, ça semblait faire appel à l’architecture de la V1.

    Ensuite, les fichiers de langue étaient sur ma version de SPIP dans le dosssier /ecrire/lang/public_*et non dans /lang/local_*

    Et un petit truc qui serait super intéressant à rajouter car très frustrant, lors de l’installation, initialiser la table traduction grâce au fichier de langue par défaut.

    Sinon, encore bravo pour ce travail !

    Répondre à ce message

    Retour au début des forums

  • Plugin « Traduction »

    23 février 2008 08:56, par taoufik karkar

    Je viens de télécharger le plugin traduction. D’avance je dis merci ! Car SPIP est vraiement multilingue dans sa conception native . Il lui manquait des petits outils qui lui permettent d’exploiter ses possibilités. Depuis longtemps je voulais retravailler la traduction en arabe fournie par spip.zip car elle est plus adaptée à l’arabe du moyen orient qu’à celui du maghreb. (vocbulaire, dénomination des mois, etc...)

    Répondre à ce message

    Retour au début des forums

  • Plugin « Traduction »

    14 mars 2008 20:07, par Ploufplouf

    Bonjour,

    Je viens d’installer le plugin sur la dernière version de spip 1.9.2d et apparemment il ne fonctionne pas. Je l’ai installé comme tout autre plugin mais lorsque que je vais dans mo onglet de traduction il m’affiche le code php. Quelqu’un aurait-il une solution à ce problème ?

    Répondre à ce message

    Retour au début des forums

  • Dans les plugins ?

    4 mars 2008 15:50, par Christophe Danaux

    Bonjour,

    Est-ce ça marche aussi pour les labels des formulaires du plugins forms@tables ?

    Répondre à ce message

    Retour au début des forums

  • Plugin « Traduction »

    16 février 2008 20:21, par paolo

    Bonsoir,

    Magnifique que quelqu’un s’attaque à ce problème ! Pourtant, je ne pense pas que cela m’aiderait.

    (Tout d’abord le "Archive Manager" d’Ubuntu dit du fichier : Could not open "traduction.rar" Archive type unsupported. Avec Windows il semble que cela marche.)

    Quand on installe le plugin sur une base existante il crée une nouvelle table pour chanque langue activée —dans mon cas plus que 30 tables. Est-ce nécessaire ? Ne pourrait-on pas faire avec une table avec une colonne pour la langue ?

    Je n’ai pas pu aller très loin. Faut-il "nommer" tous les secteurs avant de progresser à un autre écran ?

    Y a-t-il un mechanisme pour nommer une langue la langue "d’origine/source" et ensuite indiquer aux traducteurs qu’il est nécessaire de revoir leurs propres traductions ? (En regardant la base de données je ne pense pas.)

    Cela m’est indispensable. Et c’est pour cela que je continue à utiliser TradLang même s’il n’est pas tout facile à mettre en place et sauvegarde les traductions dans les fichiers de langues avec des entités HTML au lieu de texte UTF-8 (ce que j’aimerais bien changer).

    Mais, comme je disais — c’est quand même une bonne chose qu’on cherche comment entretenir ces fichiers de langue plus facilement !

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net