3 votes

Comment obtenir la langue d'entrée actuelle de la source d'entrée ?

J'utilise une source d'entrée tierce sur Mac. Voici le cas que je rencontre :

  1. J'ai saisi des caractères anglais alors que je voulais saisir du chinois. Je dois donc supprimer les caractères saisis à l'instant. Ensuite, je passe au chinois et je tape à nouveau.

  2. Si je sais quelle est la langue d'entrée actuelle, je peux d'abord changer la langue d'entrée.

  3. La source d'entrée ne peut pas afficher la langue d'entrée actuelle mais j'ai appuyé sur Shift pour passer du chinois à l'anglais et vice-versa et voir si la langue actuelle correspond à ce que je veux.

  4. Après quelques recherches, je trouve ce dépôt bitbar . Ce repo peut afficher quelques script sortie à la menubar. Je veux donc un script pour obtenir la langue d'entrée actuelle de la source d'entrée.

  5. Je trouve aussi cette question Cependant, cette question est différente de la mienne. Il trouve juste le nom de la source d'entrée, pas la langue d'entrée.

Après avoir longtemps cherché sur Google, je n'ai pas trouvé de moyen de le faire. Quelqu'un peut-il m'aider ? Merci beaucoup.

1voto

PATRY Points 3068

Une solution possible consiste à configurer la source d'entrée de manière à ce que le verrouillage des majuscules soit utilisé pour passer à l'anglais. Vous pouvez alors savoir que l'IM est dans cet état grâce au voyant vert du clavier (s'il en a un pour le verrouillage des majuscules).

1voto

Jordan Réjaud Points 111

Je suis en train de faire quelque chose de similaire, mais en japonais/anglais.

J'ai écrit le script suivant :

#!/usr/local/bin/bash
# Checks current keyboard input source (aka language)

#These are the strings that MacOS uses to identify the current input source
ENGLISH="U.S."
HIRIGANA="com.apple.inputmethod.Japanese"
KATANA="com.apple.inputmethod.Japanese.Katakana"

WESTERN_LANGUAGE=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep 'KeyboardLayout Name' | sed -E 's/^.+ = \"?([^\"]+)\"?;$/\1/')

# If the current language is not western one, then check a different variable
EASTERN_LANGUAGE=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep -w 'Input Mode' | head -1 | sed -E 's/^.+ = \"?([^\"]+)\"?;$/\1/')

if [ $WESTERN_LANGUAGE == $ENGLISH ]
then
  echo 
elif [ $EASTERN_LANGUAGE == $HIRIGANA ]
then
  echo  
elif [ $EASTERN_LANGUAGE == $KATANA ]
then
  echo 
fi

Il détermine la langue actuelle et affiche un emoji correspondant. Vous pouvez le combiner avec xbar (bitbar rebrandé) et afficher la langue actuelle dans la barre de menu ; vous voudrez également que le script soit exécuté après le changement de langue (vous pouvez probablement utiliser iCanHazShortcut pour lier un raccourci clavier à cela).

Un moyen plus simple est d'aller dans les paramètres du clavier Mac et de faire en sorte qu'il affiche une icône pour la source d'entrée actuelle (je ne suis pas sûr que cela fonctionne bien si vous utilisez une source d'entrée tierce).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X