Un service de compteur de signes, mots et paragraphes (10.6 et 10.7)

[MàJ] Ajout de la compatibilité avec Snow Leopard.  Merci à Didier Lazzarollo pour son correctif :-) Vous pouvez le télécharger à nouveau ici.

J’avais développé il y a longtemps un AppleScript pour Quark XPress permettant de facilement compter les signes d’un document, ainsi que le nombre de mots et de paragraphes contenus dans un bloc. Comme je m’amusais un peu avec les services aujourd’hui, j’ai décidé d’essayer d’adapter ce script pour le faire tourner sous la forme de service, afin de le rendre ainsi disponible dans toutes les applications de Mac OS X.

Voici donc le résultat : un compteur de signes que vous pouvez installer sur votre Mac et utiliser dans 99% des applications, y compris dans des pages web. Il suffit de sélectionner un texte, puis de faire un clic droit (ou via le menu de l’application > Services), et zou, un joli dialogue apparaît avec le nombre de caractères, de mots et de paragraphes de la sélection. Et tout ça sans passer par un copier-coller, c’est ça la magie des services !

Compteur de signes resultat

Le service Compteur de mots se télécharge ici (75 Ko) et fonctionne sous Lion et Snow Leopard). Pour l’utiliser, copiez le dans le dossier Bibliothèque/Services. Si vous cherchez encore le dossier Bibliothèque sous Lion, je vous rappelle que vous pouvez le retrouver en enfonçant la touche Option et en cliquant sur le menu Option. Double-cliquer dessus permet également de l’installer au bon endroit.

Et au passage, rappel d’une autre astuce (qui se trouve sûrement dans Lion Efficace mais j’ai la flemme de chercher…) : n’oubliez pas que vous pouvez attribuer un équivalent-clavier à ce service via la préférence Système Clavier…

Compteur de signes

16 comments

  1. Franck dit :

    Bonne idée à laquelle il ne manque plus qu’un compteur de feuillet (= 1500 signes, comptés au 1/2 feuillet le plus proche), unité utilisée par les pigistes (entre autres) pour leur facturation et en général dans l’édition papier.

    Pour la petite histoire je viens de développer un petit plugin pour Dotclear (logiciel de blog) qui fait quasiment pareil (à la différence qu’il ne compte pas le nombre de paragraphes).

  2. VoronoV dit :

    Bonjour Guillaume,

    Intéressant ton Service, mais chez moi (Snow Leopard 10.6.8), message d’erreur : « L’action « Exécuter un script AppleScript » a rencontré une erreur. ».
    Quand je lance le workflow dans Automator, erreur aussi ; et dans le log :
    – Échec du traitement pour Exécuter un script AppleScript – 1 erreur
    – Il est impossible de rendre current application en type anything. (-1700)

    Ciao et merci !

  3. JPP dit :

    Merci pour ce service, c’est super.
    J’ai terminé votre bouquin : je le trouve remarquable. Encore bravo.

  4. Didier dit :

    Pour le faire fonctionner sous Snow Leopard, c’est juste un souci de { } :
    display dialog LeResultat buttons {« OK »} default button 1 with icon note
    au lieu de
    display dialog LeResultat buttons « OK » default button 1 with icon note
    Et hop :-)

    didl_

  5. Robert dit :

    J’ai adapté cette workflow pour des utilisateurs Hollandais et Anglais, est-ce que j’ai la permission de le distribuer? Je n’arrivait pas à trouver un adresse e-mail, alors je pose la question ici…

    • Robert : vous pouvez le diffuser, mais merci de bien mentionner le site d’origine et qu’il s’agit d’une traduction. J’ai soumis l’astuce à macosxhints.com, donc pas la peine je pense de diffuser la version anglaise, la hollandaise suffira.

      Merci :)

  6. VoronoV dit :

    Merci Didier !!

  7. Robert dit :

    Bonjour Guillaume, merci pour la permission. J’ai écrit un article avec les Services dedans sur le site MacFreak.nl ( http://www.macfreak.nl/nieuws/23846/mac-tip-overal-lettertekens-woorden-en-paragrafen-tellen ) en bien sur il a un link dedans vers ton site.

    J’ai mis une version Hollandaise et uns version Anglaise, car beaucoup des Hollandais (mois inclus) utilisent leurs Macs en Anglais.

    Et je m’excuse pour des fautes dans mon Français, ce n’est pas ma langue maternelle…

  8. Didier dit :

    @Franck : Ci-dessous ce que tu demandes, enfin je pense. En fait, ce n’est que l’arrondi du nombre de signe / 1500 mais si on est en dessous de 500 signes, on a zéro feuillet (arrondi au plus proche). Est-ce bien comme ça qu’on compte ? Ne faudrait-il pas plutôt un arrondi par excès ? Dans ce cas, il faut remplacer
    set NombreFeuillets to round (NombreSignes / 1500)
    par
    set NombreFeuillets to round (NombreSignes / 1500) rounding up

    J’ai aussi ajouté une bricole qui mets les « s » du pluriel là où il faut (ok, je pinaille… :-P ).
    Enfin, j’ai remplacé 1 return sur 2 par tab sinon on dépasse l’affichage standard du display dialog.

    Guillaume, si ça te dit de reprendre ce code…

    *** début du code ***

    — Auteur : Guillaume Gete 04/2012. Adaptation Didier Lazzarollo.

    on run {input, parameters}
    try
    set MyText to input as string
    set NombreSignes to the number of characters of MyText
    set NombreMots to the number of words of MyText
    set NombrePara to the number of paragraphs of MyText
    set NombreFeuillets to round (NombreSignes / 1500)
    set LeResultat to « La sélection contient : » & return & « –  » & NombreSignes &  » signe » & sPluriel(NombreSignes) & « ; » & tab & « –  » & NombreMots &  » mot » & sPluriel(NombreMots) &  » ; » & return & « –  » & NombrePara &  » paragraphe » & sPluriel(NombrePara) & « ; » & tab & « –  » & NombreFeuillets &  » feuillet » & sPluriel(NombreFeuillets) & « . »
    display dialog LeResultat buttons {« OK »} default button 1 with icon note
    on error errmsg number errnum
    display dialog errmsg &  » [ » & errnum & « ] » buttons {« OK »} default button 1 with icon stop

    end try
    return input
    end run

    on sPluriel(input)
    if (input > 1) then return « s »
    end sPluriel

    *** fin du code ***

  9. Didier dit :

    @VoronoV : de rien, c’est GG qui a fait le plus gros :-)

    @Robert : wouah ! C’est tout de suite plus compliqué en hollandais ! :-D
    Par contre, mon truc du s au pluriel ne fonctionnera pas dans ta langue. Il faudrait aller un peu plus loin pour les pluriels réguliers mais surtout il faudrait utiliser un dictionnaire pour les irréguliers, qui sont peut-être plus nombreux qu’en français.
    Ou alors, ruser en écrivant « à l’envers » :
    – Nombre de signes : xxx
    – Nombre de mots : xxx

    Didier

  10. VoronoV dit :

    Salut Didier,

    Merci pour le deuxième code avec un seul retour à la ligne et le compteur de feuillets, ça m’aide à comprendre le script (je débute).

  11. RubensB dit :

    Bonjour à tous,

    En fait mon commentaire est… une question.

    J’ai bien vu comment installer l’icône de la Bibliothèque dans la Barre latérale du Finder sous Lion. Mais dans Bibliothèque, je ne trouve pas Services. Je vois bien Scripts, Sync Services, Workflows, DirectoryServices, mais pas Services…

    Où installer le script ?

    Merci d’avance de m’éclairer.

    Rubens

  12. RubensB dit :

    @Guillaume Gete
    Voila qui est fait.
    Ça fonctionne tout à fait bien.

    Merci.

    Rubens

  13. Je n’ai pas tout compris, mais je vais relire plusieurs fois pour comprendre :-)
    En fait je viens de lire une seconde fois, et je ne comprends toujours pas comment tu as fait ça ? Tu as compilé quoi ? C’est un script ? Un automator ? Bon… Moi et l’informatique cela fera toujours deux, je vais faire semblant que ça m’intéresse pas, je vais télécharger ton bidule, et faire ce que tu me dis :-(

  14. Kat de Paris dit :

    Première fois que j’utilise un « service » sur mon Mac !
    Je comprends enfin l’utilité de ce menu grâce à vous :)
    Merci pour ce script très pratique.