La dictée dans Mountain Lion est une petite fonction sympathique qui me convient parfaitement. Cependant, j'ai souvent besoin de passer d'une langue de dictée à l'autre, alors passer par les Préférences Système est beaucoup trop de clics pour moi tout le temps. C'est pourquoi j'ai écrit un petit utilitaire qui se trouve dans la barre de menu et qui permet à l'utilisateur de changer de langue de dictée. Le problème, c'est qu'il ne fonctionne pas vraiment. Du moins, pas sans se déconnecter et se reconnecter.
Mon utilitaire modifie tous les fichiers plist qu'il devrait être nécessaire de modifier :
~/Library/Preferences/com.apple.speech.recognition.AppleSpeechRecognition.prefs.plist
~/Library/Preferences/com.apple.assistant.plist
~/Library/Preferences/com.apple.assistant.support.plist
(le dernier contient en fait une valeur BOOL pour activer/désactiver la dictée)
Pour autant que je sache (et croyez-moi, je me suis penché sur la question !), ce sont les seuls fichiers qui sont modifiés lorsque l'on change la langue de la dictée dans le panneau des préférences de la dictée. Cependant, lorsque je modifie le paramètre de langue dans mon utilitaire et que je déclenche ensuite la dictée, le paramètre précédent est conservé. Je suppose donc que le(s) démon(s) de dictée ne charge(nt) pas le fichier modifié. Ce n'est pas grave, n'est-ce pas ? Il suffit de trouver les bons démons. Eh bien, il y a trois processus principaux qui semblent appartenir à la dictée :
com.apple.assistantd
(il semble que ce soit le daemon de dictée, qui enverra également des messages non sollicités à la console)
com.apple.assistant_service
(pas sûr de ce qu'il fait)
DictationIM.app
(celle-ci représente l'interface graphique de la fonction, la petite fenêtre grise avec le microphone)
Cependant, les tuer (ou, dans le cas d'assistant_service/assistantd, les arrêter et les redémarrer avec launchctl), ne fait rien.
Les modifications que j'apporte aux fichiers plist sont valables, car lorsque je redémarre l'ordinateur ou que je me déconnecte ou me reconnecte, le nouveau paramètre est utilisé pour déclencher la dictée.
Y a-t-il quelque chose que j'ai oublié ? Un fichier plist qui enregistre les paramètres régionaux ? Ou un fichier cache que je n'ai pas trouvé ? Je ne pense pas, parce que j'ai vraiment retourné tout le système pendant le week-end pour le trouver.
Une idée de quels (autres) démons sont responsables et doivent être (re)démarrés après une modification des fichiers plist ?
Merci pour toute indication dans la bonne direction !
Oh, et si j'arrive à faire fonctionner ce truc, je publierai l'utilitaire en tant que freeware.
EDITAR : Comme promis, je publie l'utilitaire en tant que freeware. Vous pouvez l'obtenir ici : http://fouquet.me/apps/dictationswitcher/
Je l'ai également mis en libre accès : https://github.com/fouquet/DictationSwitcher