SPIP-Contrib

SPIP-Contrib

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

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

Accueil > Outils pour plugins > LangOnet > LangOnet - Présentation générale

LangOnet - Présentation générale

20 août 2010 – par Déesse A. , denisb, erational, _Eric_ – commentaires

28 votes

Un outil destiné aux développeurs pour vérifier, générer, éditier ou afficher les items de langue d’un plugin, d’un squelette ou des fichiers originaux de SPIP.

Objectif

La mise au point des fichiers de langue d’un plugin ou d’un squelette est souvent une activité fastidieuse que l’on repousse à la fin des développements (toute ressemblance avec la documentation est fortuite...)
Ceci est particulièrement vrai quand on opère des mises à jour lourdes sur un développement déjà multilingue.

LangOnet passe en revue tous les fichiers du site : tant les fichiers originaux de SPIP que ceux des plugins installés (activés ou non) ou les éventuels fichiers-squelettes de personnalisation.

Ce plugin aide ainsi à la mise au point des chaînes de langue en proposant :

  • Une vérification de la bonne définition des items de langue (utilisés dans le code HTML ou PHP mais non définis dans les fichiers de langue) ;
  • Une vérification de la bonne utilisation des items de langue (définis mais non utilisés dans le code) ;
  • Une recherche des chaînes de langue utilisées avec la fonction _L() (items à traduire) ;
  • Un affichage en clair d’un fichier de langue ;
  • Une recherche des items de langue SPIP à partir de leur clef (raccourci) ou d’un extrait de leur valeur (traduction affichée) ;
  • Une génération d’un fichier de langue « cible » qui complète, avec les items trouvés, un fichier de langue « source » (en UTF-8 ou ASCII et entité XML) ;
  • Une génération d’un script Shell, dont l’exécution remplace dans les fichiers PHP et HTML les chaînes de langue (i.e. les premiers arguments de _L et les textes libres entre < : et :>) par des items de langue bien écrits et intuitifs, ce script est ajouté au fichier de langue mentionné ci-dessus (cette fonctionnalité est apparue avec la version 0.7.0).
  • Une édition en ligne des fichiers de langue (à partir de la version 1.4)
  • Une génération d’un fichier traduction à partir d’une langue source (à partir de la version 1.4)

Installation

Comme tout plugin, il suffit de suivre les procédures manuelles ou automatiques standard : veuillez vous reporter à cette documentation : SPIP-1-9-Les-Plugins.

A partir de SPIP 3.1, LangOnet se trouve dans le menu Développement.

Pré-requis

À partir de la version 0.5.2, il est nécessaire d’activer le plugin Itérateurs pour être en mesure d’utiliser LangOnet. Pour les versions antérieures il fallait activer SPIP-Bonux 2.

Depuis le version 1.0.0 le plugin n’a plus besoin de Itérateurs

Pertinence et limites

Les analyses effectuées par LangOnet sont basées sur des expressions rationnelles (RegExp) qui débusquent chaînes et items de langue dans des fichiers écrits en différents langages et sous des expressions parfois peu évidentes.

Dans sa version actuelle, LangOnet est capable de rechercher des items de langue dans les fichiers :

  • de code PHP (exemple : fonctions_plugin.php),
  • de squelette HTML (exemple : ma_page.html),
  • de définition XML ou YAML( exemple : plugin.xml).

Dans ces fichiers, LangOnet est capable de repérer des utilisations telles que :

  • <:item_de_langue5:>
  • <:texte pour lequel Langonet fabriquera un index:>
  • <:pluga:item_de_langue4:>
  • <:module:item_de_langue3{arg1=texte, arg2=#BALISE}|filtre1{texte, #BALISE}:>
  • _T('plugb:item_de_langue1', array('dest'=>$dest, 'bli' => 'blo'))
  • _T('module:item_de_langue2_' . $truc . 'n')
  • _T('module:item_de_langue6_' . $truc['bla'] . 'aa')
  • _T("item_de_langue7_" . $truc[$bla] . 'aa')
  • _T("item_de_langue9' . is_string($val) ? '_'.  $val : '')
  • _T("module:$variable")
  • _T("module:" . $variable)
  • _T('module:' . $variable)
  • _U("item_de_langue8")
  • _L("Ceci est une chaîne qu'il faut traduire")
  • _L("Ceci est une $expression à traduire @urgence@", array('urgence' => 'bientôt'))

Comme on peut le voir, si le plus grand nombre des utilisations possibles est ainsi couvert. « Toutes » les écritures contenant des items de langue ne sont cependant pas repérées aujourd’hui, et LangOnet ne conduit pas toujours à une information certaine. Par exemple, dans le plugin Rainette, les situations météorologiques sont connues par un numéro de 0 à 47 ; le fichier de langue rainette_fr.php se présentant ainsi :

  1.  
  2. 'meteo_0' => 'tornade',
  3. 'meteo_1' => 'temp&ecirc;te tropicale',
  4. 'meteo_10' => 'pluie vergla&ccedil;ante',
  5. 'meteo_11' => 'averses',
  6. 'meteo_12' => 'averses',
  7. 'meteo_13' => 'quelques flocons',
  8. 'meteo_14' => 'faibles averses de neige',
  9. 'meteo_15' => 'blizzard',
  10. ...
  11.  

L’utilisation qui en est faite dans le code est la suivante :

  1.  
  2. function rainette_resume_meteo($code_icon) {
  3. include_spip('inc/rainette_utils');
  4. $resume = ucfirst(_T('rainette:meteo_' . code2icone($code_icon)));
  5. return $resume;
  6. }
  7.  

Ici, l’utilisation des items meteo_xx dans la fonction rainette_resume_meteo() ne permet pas à LangOnet de savoir avec certitude si toutes les valeurs de 0 à 47 sont bien utilisées. LangOnet ne fournira donc qu’un avertissement appelant l’auteur à procéder à une vérification manuelle...

Les principes de l’interface utilisateur

Tout se passe dans l’espace privé du site (sous-menu de Configuration ou Maintenance suivant que vous utilisiez Bandeau 2.1 ou pas. Vous pouvez aussi vous rendre directement à l’adresse ?exec=langonet_verifier).

La page affichée par défaut en cliquant sur l’entrée de menu « Vérifier les langues » est présentée ci-dessous. On y distingue les quatre onglets permettant d’accéder aux différentes fonctions du plugin.

La partie centrale affiche, d’une part, le « formulaire de paramétrage » de la fonction LangOnet en cours d’utilisation, et d’autre part, le « bloc des résultats ». Ces résultats utilisent un jeu de couleurs : vert, jaune ou rouge afin d’attirer l’attention de l’utilisateur sur le niveau d’erreur détecté.

La colonne de gauche présente les fichiers de log des vérifications ou la liste des fichiers de langue générés. Ces fichiers sont créés dans le répertoire tmp/langonet/. Il est possible de les télécharger sans passer par le FTP en cliquant simplement sur leur nom et pour les utilisateurs du plugin MediaBox, un « popup » de visualisation des fichiers s’ouvre d’un simple clic sur l’icône présente à droite du nom du fichier.

À partir de la version 0.7.0, ce répertoire contient également le script Shell dont l’exécution provoque la modification des fichiers PHP et HTML contenant les chaînes de langues. Actuellement il doit être récupéré par FTP et placé dans le répertoire des fichiers pour lesquels il a été produit. Lors d’une première exécution, on vérifiera que les substitutions sont acceptables : les limites exposées ci-dessus font que le découpage des chaînes de langue trouvées n’est pas toujours optimal, et le nom des items qui les remplaceront pas toujours intuitif, particulièrement pour les chaînes de plus de 32 caractères. Quelques adaptations manuelles seront alors nécessaires.

À partir de la version 1.4.0, LangOnet propose deux nouvelles fonctions :

  • édition des fichiers de langue
  • éditer la traduction d’un fichier d’une langue source à une langue destination (c’est à vous de saisir la traduction).

Les fichiers crées n’écrasent pas les fichiers d’origine mais sont stockés dans le répertoire tmp/langonet. Il faudra ensuite les télécharger et les placer au bon endroit.

Interface de traduction
Les champs indiqués en orange ne sont pas encore traduits (ou sont identiques à la langue source)
Les champs indiqués en vert sont traduits

Limites
Ce plugin est destiné à aider à la traduction de plugins et squelettes "maisons". Pour des plugins majeurs, il est conseillé de passer par le site dédié de traductions de SPIP http://trad.spip.net

Voir en ligne : http://plugins.spip.net/langonet

Dernière modification de cette page le 18 août 2016

Retour en haut de la page

Vos commentaires

  • Le 18 avril à 14:07, par ydikoi En réponse à : LangOnet - Présentation générale

    Bonjour,

    Le plugin est marqué comme compatible 3.1 ici mais le fichier plugin.xml marque une compatibilité jusqu’à 3.0.99

    Je ne sais lequel des deux a raison ? ;)

    Répondre à ce message

  • Le 15 avril 2011 à 00:19, par Perline En réponse à : LangOnet
    Présentation générale

    Bonjour,
    A priori bien pratique ce plugin ! Je ne l’ai pas encore regardé entièrement mais je suggère quelques changements dans la doc.
    Il faudrait ajouter qu’il faut le plugin iterateurs et par ailleurs langonet est un sous-menu de configuration pas edition.

    • Le 15 avril 2011 à 08:46, par _Eric_ En réponse à : LangOnet
      Présentation générale

      Salut,

      Tu as raison Perline, je n’ai pas mis à jour les dernières modifications que j’ai effectuées.
      J’y go, merci pour l’info.

    Répondre à ce message

  • Le 27 mars 2011 à 15:04, par Déesse A. En réponse à : LangOnet
    Présentation générale

    Deux autres mises au propre que ce plugin devrait faire à mon avis :

    -  il ne devrait pas y avoir d’URL dans les fichiers de langues, cette information devrait être placé en argument de la fonction _T, de sorte que si cette URL doit être modifiée, on ait à le faire que dans le fichier utilisant la chaîne de langue en question. Pour les URL référençant la doc,
    cela a été fait dans la version 13558, avec un script Sed ; il faudrait le faire systématiquement. Actuellement il y a plus de 100 URL dans les fichiers de langues qui ne devraient donc pas y être.

    -  il ne devrait pas y avoir non plus de balises HTML, car elles échappent à la stylisation des feuilles de styles. Là il y en a encore des milliers.

    Répondre à ce message

  • Le 6 janvier 2011 à 17:11, par ? En réponse à : LangOnet
    Présentation générale

    Je ne comprends pas bien l’utilité du générateur de langue. Peut-on l’utiliser dans une traduction automatisée ? Ou permet-il uniquement de faire une copie du fichier langue avec quelques traductions ? je dois louper un truc

    Répondre à ce message

  • Le 21 août 2010 à 11:49, par SuperYMS En réponse à : LangOnet
    Présentation générale

    j’aime bien le plugin, il est et sera utile à mon avis !

    cependant je suis surpris par le nombre d’écriture possible (y en a pas mal que je ne connaissais pas !!), alors pourquoi ne pas aussi faire un travail d’uniformisation (un standard) d’écriture, au lieu d’en avoir 20, en avoir 4 ou 5 mais qui soient simples et claires !! (là je m’adresse aux développeurs du core SPIP).

    @+

    • Le 21 août 2010 à 12:09, par denisb En réponse à : LangOnet
      Présentation générale

      toutes ces écritures possibles ne sont en rien concurentes mais bien complémentaires. tout dépend du résultat attendu dans l’utilisation de l’item de langue.

      c’est là une des richesses du traitement des langues qu’offre SPIP.

    Répondre à ce message

Répondre à cet article

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

  • Brownie

    6 juillet 2012 – 43 commentaires

    Brownie est une adaptation pour Zpip du thème du même nom initialement développé par Egrappler.com. Présentation Brownie est un thème Responsive à deux colonnes. La démonstration ci-dessous utilise la version 2.0.0 de Brownie, la dist de SPIP3 (...)

  • Métas +

    3 décembre – 13 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, (...)

  • Acces Restreint 3.0

    11 décembre 2008 – 785 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Compositions 2 et 3

    25 mars 2011 – 176 commentaires

    Ce plugin vous permet de définir plusieurs variantes de squelettes (nommées compositions) pour un même type d’objet SPIP. Dans l’espace privé, il est alors possible de choisir, dans un menu déroulant, la composition qu’on veut attribuer à chaque (...)

  • Configurer Sparkpost

    25 avril – 18 commentaires

    N’hésitez pas à relire le préambule de cette rubrique avant de créer un compte sur une plateforme tierce . Présentation Sparkpost est une société d’envoi de mailing https://www.sparkpost.com/ Sur les petits volumes ( <100.000 emails / mois), (...)

Ça spipe par là