Если я вас правильно понимаю, мне интересно, что ввод Ctrl + B создает другой код клавиши, когда вы используете разные языки? В этом случае загляните в KeyEvent API. У него есть 2 соответствующих метода: getKeyCode () и getKeyChar ().
getKeyChar (), вызываемый при нажатии клавиши, зависит от текущего языка. getKeyCode () не зависит. Он всегда возвращает код ключа, а не букву, связанную с ним. Более того, я обнаружил, что (по крайней мере, в моей системе - Linux Fedora) getkeyChar (), вызванный для освобожденного ключа, возвращает английский символ, даже если текущий язык отличается.
Вот результаты нажатия и отпускания одной и той же клавиши с 3 различными языками ввода, установленными в моей системе: английский, русский и иврит.
нажата: ф 65
выпущено: 65
нажал: 65
выпущено: 65
нажал: ש 65
выпущено: 65
Как видите, код ключа всегда один и тот же, хотя символ другой.