Descobrir qual layout de teclado é usado, usando Ruby
-
03-07-2019 - |
Pergunta
Como posso saber, que layout de teclado do usuário do meu aplicativo Ruby está usando? Meu objetivo é ter um jogo, onde você pode mover o jogador em um mapa. Para ir um passo para baixo e um passo à esquerda você pressionar "Y" em um teclado alemão. Em um teclado americano, você deve pressionar "Z". Nós otimizamos o jogo para Windows e Mac, então eu gostaria de uma solução para ambas as plataformas (e não usamos nenhum / Control-chaves de comando / turno).
Solução
Como Alexander recomendado, permitir que o usuário definir as chaves se.
Mas, se você realmente quer reconhecer o layout, você pode sempre solicitar que o usuário pressione as teclas em determinadas posições, em particular a alguns layouts.
"Press a segunda chave para a esquerda da chave de retorno. Se a sua chave de retorno é de duas linhas de alta, pressione o inferior"
[Prensas ä
]
"Parece que você tem um teclado escandinavo"
Isso, no entanto, é um cludge horrível, e, no contexto do jogo, gostaria de recomendar o método de mapeamento de teclado personalizado
Outras dicas
Para o Windows, você provavelmente terá que usar o do Windows API GetKeyboardLayout () , a menos que o ruby ??fornece um invólucro para isso.
Há uma grande quantidade de recursos I18n úteis para Windows no site da MSDN .
Pode ser mais fácil do que simplesmente permitir-lhes para configurá-lo-se como uma preferência, se você não tem uma boa maneira portátil de detectá-lo.
Eu acho que vai ser muito mais fácil e, naturalmente, para permitir que os usuários definam próprias chaves.