Java-робот с Azerty против Qwerty

Я надеюсь, что это не дубликат, но я просмотрел форумы и пока не нашел ответов.

У меня проблемы с моим Java-приложением, использующим класс Robot для ввода текста. Текст предоставляется, и приложение печатает его. Когда у пользователя QWERTY-клавиатура, все работает нормально. Когда у пользователя есть клавиатура AZERTY, значения выводятся неправильно.

Например, ввод "1234567890" в типы программ "& é" '(§è! Çà "

Я надеюсь, что у некоторых людей есть идея, как поддерживать несколько раскладок клавиатуры. Заранее спасибо.

Вот фрагмент

String TRANSLATION_SHIFT = "~!@#$%^&*()_+{}|:\"<>?";
String TRANSLATION_NON_SHIFT = "`1234567890-=[]\\;',./";
Robot robot = new Robot();
String text = "1234567890";
int key;
for (char c: text.toCharArray()){
  switch(c){
    ....
    case '0':
      key = KeyEvent.VK_0;
      break;
case '1':
  key = KeyEvent.VK_1;
  break;
...(etc etc)...
case '9':
  key = KeyEvent.VK_9;
  break;
    ...
  }
  robot.keyPress(key);
  robot.keyRelease(key);
}

Там также есть код, чтобы

Ответы на вопрос(1)

Ваш ответ на вопрос