How can I create internationalized accelerator keys (not mnemonics) for menu items? (The same menu item could have different accelerator keys for different languages.)
Created May 4, 2012
Sandip Chitale
Use the following API
KeyStroke.getKeyStroke(String stringFormOfKeyStroke)
as in the following code:
public static KeyStroke getKeyStroke(String s)
Parse a string with the following syntax and return an a KeyStroke:
"<modifiers>* <key>" modifiers := shift | control | meta | alt | button1 | button2 | button3 key := KeyEvent keycode name, i.e. the name following "VK_".
Here are some examples:
"INSERT" => new KeyStroke(0, KeyEvent.VK_INSERT); "control DELETE" => new KeyStroke(InputEvent.CTRL_MASK, KeyEvent.VK_DELETE); "alt shift X" => new KeyStroke(InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, KeyEvent.VK_X);
Now, it becomes a matter of loading a locale based ResourceBundle which contains the map. For details on ResourceBundle please see the following URL -
http://java.sun.com/products/jdk/1.2/docs/api/java/util/ResourceBundle.html
To keep the uniqueness of the key is the responsibility of the person who localizes the resource bundle. You could write a GUI to wrap that functionality.