Key-bindings have been added so this should now work. Regarding wrong keyboard API, we are using what Unity provides us so unfortunately that is a bit tricky to change at this moment.
I'm pretty sure this is not a general Unity issue. Unity is used too much for this to be hidden inside.
Check how you define your (default/saved) key mappings. There should be two very similar ways of doing it, one where you provide a character (e.g. "when 'A' is pressed") and one where you give it the keycode (e.g. "when Keys.KEY_A is pressed", this references the US layout for key names) or scancode (e.g. "when key 31 is pressed"). In this case, you naturally need to call some function to translate it to a display string, but that's the only part that depends on they keyboard layout the user has selected.
The nice thing about using key/scan codes is that it doesn't matter which keyboard layout the user has. The default mapping addresses the key location and the settings dialog displays whatever is printed on that key.