Keyboard internationalization
This MR adds all the keyboard layouts specified by the Unicode CLDR project. The converter used to generate the layout files (res/generate_layouts.py
) is also added. G3kKeyboard then loads the appropriate keyboard layout based on the locale.
Technical details:
- Keys in the keyboard layout JSON files can have one of these three elements: target, character or keyval. A target specifies that the key switches to another mode (e.g. from alphabet to numbers). A character can be any unicode character. A keyval can be any key as understood by X11, which is currently only used to send XK_BackSpace.
- XrdWindow string properties now use character arrays instead of GStrings
- XrdWindow now has three keyboard-specific properties: target, character and keyval. They should be moved to a G3kKeyboardKey class in the future.