f8b4696211
The module was imported into the toplevel in !424, but that's at least a bit weird: - it's a helper script for one particular aspect (OSK layouts) - it adds a README.mdwn to our own README.md, and a test/ directory to our tests/ Move the whole thing to a subdirectory under data/, which is more appropriate. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136
1.2 KiB
1.2 KiB
cldr2json
This script converts Unicode CLDR android keyboard layouts to JSON usable by GNOME Shell.
CLDR keyboard layouts can be found at http://www.unicode.org/Public/cldr/latest/keyboards.zip
Usage
./cldr2json <input file or directory> <output directory>
example:
./cldr2json cldr/keyboards/android/ json_layouts/
Keyboard layout mapping
Unicode CLDR layout identifiers are language codes, while XKB layout identifiers are... something else. The mapping between the two currently uses heuristic based on the layout descriptions, in this order:
- if the CLDR layout description matches an XKB layout description, chose its XKB identifier
- if one word of the CLDR layout description matches an XKB layout description, chose its XKB identifier
- if the CLDR layout description matches one word of an XKB layout description, chose its XKB identifier
That doesn't always work. For instance it fails for "en" language, that should match "us" XKB identifier. For such cases, there is a mapping in LOCALE_TO_XKB_OVERRIDES at the top of the script. If you discover a weird mapping of if you get a "failed to find XKB mapping for " warning then please consider adding an override there.