Annoncer l’heure en anglais sous MacosX

© Christian PAULUS. Document créé le 10 août 2010 , mis à jour le 10 août 2010.

Ce n'est pas pour me vanter, mais il fait rudement chaud. Eugène Labiche

Accueil du site > Astuces > MacOSX > Annoncer l’heure en anglais sous MacosX

Applescript, afplay, say / MacOsX 10.6 (Snow Leopard)

En guise d’exercice, annonce de l’heure en anglais, précédée du son d’une cloche d’horloge.

Le script illustre :

Le script ci-dessous doit être enregistré en tant qu’application. Vous devez ensuite "Afficher le contenu du paquet" du menu contextuel et recopier un son au format mp3 nommé "glas.mp3" dans son répertoire Contents:Resources:Sounds :. Le répertoire Sounds n’existe pas, il faut le créer.

La version prête à l’emploi de ce script se trouve en bas de page. Il suffit de lancer l’application et de laisser tourner.

(*

        Annoncer l'heure toutes les heures,
        en anglais, avec son de cloche
       
        Tue Aug 10 16:27:17 CEST 2010
        © 2010 - Christian Paulus
        Licence GPL3
        http://www.quesaco.org/Annoncer-l-heure-en-anglais
       
        Enregistrez ce script en tant qu'application
        en cochant la case "Rester en arrière-plan"
       
*)
property version : 1.0
property bell : false

on run
        if (bell is false) then
                -- ne sera appelé que la première fois
               
                -- son de cloche de début de message
                set whereis to path to resource "glas.mp3" in directory "Sounds"
               
                -- la version POSIX pour appel via le shell
                set bell to (POSIX path of whereis)
               
                log (" run with sound " & (quoted form of bell))
               
        end if
end run

on idle
       
        -- tracer dans /var/log/system.log
        -- (pour suivre le log: tail -F /var/log/system.log)
        log (" idle with sound " & (quoted form of bell))
       
        -- prendre l'heure courante
        set maintenant to current date
        set heures to hours of maintenant
        set minuts to minutes of maintenant
       
        if (minuts = 0) then
                if (heures = 0) then
                        set msg to "It is midnight."
                else if (heures < 12) then
                        set msg to "It is " & heures & " o'clock in the morning."
                else if (heures = 12) then
                        set msg to "It's noon."
                else if (heures < 18) then
                        set heures to heures - 12
                        set msg to "It is " & heures & " o'clock in the afternoon."
                else
                        set heures to heures - 12
                        set msg to "It is " & heures & " o'clock in the evening."
                end if
                -- jouer le son et dire l'heure
                do shell script "afplay " & (quoted form of bell) & ";" & ¬
                        "say " & (quoted form of msg) & " -v 'Vicki'"
        end if
       
        -- préparer le rappel pour la prochaine heure
        set dans_une_heure to ((current date) + hours)
       
        -- heure pile sans minutes ni secondes
        set minutes of dans_une_heure to 0
        set seconds of dans_une_heure to 0
       
        -- traduire en secondes
        set en_secondes to time of dans_une_heure
       
        -- calculer le délais
        set revenir to (en_secondes - (time of maintenant))
       
        -- pour log, traduire en humain
        set heures to hours of dans_une_heure
        set minuts to minutes of dans_une_heure
        set secondes to seconds of dans_une_heure
       
        -- message dans le log
        log (" will be back in " & revenir & " seconds @ " & ¬
                heures & ":" & minuts & ":" & secondes)
       
        -- ce script est rappelé dans revenir secondes
        return revenir
end idle

on log (msg)
        do shell script ("logger -t act " & msg)
end log

La version complète, à décompresser pour usage :

Zip - 191.2 ko
Announce current time

Plussoyez !

Les forums sont fermés.