2 votos

Cómo obtener el idioma actual de la fuente de entrada

Utilizo una fuente de entrada de terceros en Mac. Este es el caso que encuentro:

  1. Introduzco algunos caracteres en inglés cuando quiero introducir el chino, así que tengo que borrar los caracteres introducidos hace un momento. Luego cambio al chino y vuelvo a escribir.

  2. Si sé cuál es el idioma de entrada actual, entonces puedo cambiar el idioma de entrada primero.

  3. La fuente de entrada no puede mostrar el idioma de entrada actual, pero he pulsado Shift para cambiar entre el chino y el inglés para ver si el idioma actual es el que quiero.

  4. Después de investigar un poco, encuentro esta repo barra de bits . Este repo puede mostrar alguna salida script en la barra de menús. Así que quiero algunos script para obtener el idioma de entrada actual de la fuente de entrada.

  5. También encuentro esta pregunta Sin embargo, esta pregunta es diferente a la mía. Sólo encuentra el nombre de la fuente de entrada, no el idioma de entrada.

Después de buscar en Google durante mucho tiempo, no he encontrado la manera de hacerlo. ¿Alguien puede ayudarme? Muchas gracias.

1voto

PATRY Puntos 3068

Una posible solución es configurar la fuente de entrada para que se utilice el bloqueo de mayúsculas para cambiar al inglés. Entonces puedes saber que la MI está en ese estado por la luz verde del teclado (si tiene una para el bloqueo de mayúsculas).

1voto

Damien Puntos 1

Estoy haciendo para ir algo similar, excepto con el japonés/inglés.

He escrito el siguiente script:

#!/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

Determina el idioma actual y muestra un emoji relevante. Puedes combinarlo con xbar (barra de bits de marca) y mostrar el idioma actual en la barra de menús; también querrás que el script se ejecute después de cambiar el idioma (probablemente puedes usar iCanHazShortcut para vincular un atajo de teclado a eso).

Una forma más sencilla es ir a la configuración del teclado del Mac y hacer que se muestre un icono para la fuente de entrada actual (no estoy seguro de lo bien que funciona si estás usando una fuente de entrada de terceros).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X