Robô de Java com Azerty vrs Qwerty

Espero que isso não seja uma duplicata, mas eu vasculhei os fóruns e ainda não encontrei nenhuma resposta.

Estou tendo problemas com meu aplicativo java usando a classe Robot para digitar texto. O texto é fornecido e o aplicativo digita. Quando o usuário tem um teclado QWERTY, tudo funciona bem. Quando o usuário tem um teclado AZERTY, os valores saem incorretamente.

Por exemplo, alimentando "1234567890" nos tipos de software "& é" '(§è! Çà "

Espero que algumas pessoas tenham uma ideia de como suportar vários esquemas de teclado. Agradeço antecipadamente.

Aqui está um trecho

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);
}

Há também código lá para

questionAnswers(1)

yourAnswerToTheQuestion