Узнайте, какая раскладка клавиатуры используется, с помощью Ruby

StackOverflow https://stackoverflow.com/questions/205871

  •  03-07-2019
  •  | 
  •  

Вопрос

Как я могу узнать, какую раскладку клавиатуры использует пользователь моего приложения Ruby?Моя цель — создать игру, в которой вы сможете перемещать игрока по карте.Чтобы перейти на один шаг вниз и на один шаг влево, нажмите «Y» на немецкой клавиатуре.На американской клавиатуре вы должны нажать «Z».Мы оптимизировали игру для Windows и Mac, поэтому мне хотелось бы иметь решение для обеих платформ (и мы не используем никаких клавиш команд/Shift/Control).

Это было полезно?

Решение

Как рекомендовал Александр, позвольте пользователю самому определять ключи.

Но если вы действительно хотите распознать раскладку, вы всегда можете попросить пользователя нажимать клавиши в определенных положениях, особенно для некоторых раскладок.

«Нажмите вторую клавишу слева от клавиши возврата.Если ваша клавиша возврата имеет высоту в два ряда, нажмите нижний"
[нажимает ä]
«Похоже, у тебя скандинавская клавиатура»

Однако это ужасная загвоздка, и в контексте игры я бы рекомендовал использовать собственный метод сопоставления клавиш.

Другие советы

Для Windows вам, вероятно, придется использовать Windows API GetKeyboardLayout(), если только Ruby не предоставит для этого оболочку.

Есть много полезные ресурсы I18n для Windows на веб-сайте MSDN.

Возможно, было бы проще просто позволить им самостоятельно настроить его в качестве предпочтения, если у вас нет хорошего портативного способа его обнаружения.

Я думаю, что будет намного проще и естественнее позволить пользователям самим определять ключи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top