Como definir atalhos legíveis para teclados internacionais?

Eu pensei que podia usar a representação de string de uma tecla do teclado para configurar atalhos, ou seja, deixar alguém definir uma combinação de teclas em um pacote de recursos e passar esse valor diretamente parajavax.swing.KeyStroke.getKeyStroke(String). Mas isso não funciona para teclados internacionais, por exemplo, árabe. Lá, as teclas do teclado são apenas eventos digitados por teclas de alto nível, mas os atalhos precisam ser definidos como eventos pressionados por teclas de baixo nível com sua representação do código da tecla. Se alguém conhece o código da chave correspondente, pode usar a representação em inglês dessa chave para fazê-la funcionar, mas de onde deveria saber isso? Escrevi um ouvinte chave que diz isso, mas preciso de algo ao analisar umString programaticamente. Alguma idéia para usar a representação de chave dependente da linguagem natural para atalhos?

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;


public class InternationalKeyStroke {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                JFrame frame = new JFrame();
                frame.setPreferredSize(new Dimension(600, 400));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                JPanel panel = new JPanel();
                final JLabel label = new JLabel("Type the key you want to know the key code of!");
                panel.add(label);
                frame.addKeyListener(new KeyAdapter() {

                    @Override
                    public void keyPressed(KeyEvent e) {
                        String text = "Key " + e.getKeyChar() + " needs to be configured with char ='" + (char) e.getKeyCode() + "'";
                        label.setText(text);
                        System.out.println(text);
                    }

                });
                frame.getContentPane().add(panel);
                frame.pack();
                frame.setVisible(true);

                KeyStroke working = KeyStroke.getKeyStroke("control typed A");
                label.registerKeyboardAction(new AbstractAction() {

                    @Override
                    public void actionPerformed(ActionEvent event) {
                        System.out.println("Working action " + event);
                    }
                }, working, JComponent.WHEN_IN_FOCUSED_WINDOW);

                KeyStroke target = KeyStroke.getKeyStroke("control typed ش");
                System.out.println(target);
                label.registerKeyboardAction(new AbstractAction() {

                    @Override
                    public void actionPerformed(ActionEvent event) {
                        System.out.println("Not working Action " + event);
                    }
                }, target, JComponent.WHEN_IN_FOCUSED_WINDOW);
            }
        });
    }
}

questionAnswers(1)

yourAnswerToTheQuestion