futokb/tools/make-keyboard-text-py
Aleksandras Kostarevas c9dc656fbf Update keyboard texts for many languages to separate misc keys
This was done by looking at characters listed on the Wikipedia language recognition chart[0] for each language, finding the last character in the array that the language uses and splitting the rest off into misc. This was partially automated, but there is potential that there may be errors for some languages. All of the keys should still be there if misc keys are enabled, so the keyboard should still be usable for all affected languages even if there were errors, if misc keys are enabled.

[0] https://en.wikipedia.org/wiki/Wikipedia:Language_recognition_chart
2024-07-24 21:42:44 +03:00
..
locales Update keyboard texts for many languages to separate misc keys 2024-07-24 21:42:44 +03:00
src Update KeyboardTextsTable template 2024-07-24 21:35:10 +03:00
README.md Add README for make-keyboard-text-py 2024-07-24 21:32:49 +03:00

make-keyboard-text-py

Keyboard texts define language-specific key specifications, morekeys, etc. For example, they allow a language to have a custom comma symbol, or custom parentheses, without needing special cases in the keyboard layout definitions.

Definitions

These are defined in json files located in the locales directory. There are a few predefined keys that act as prefixes. For example, morekeys.a automatically becomes !text/morekeys_a. Items in the other key are prefix-less.

In morekeys, values can be arrays that are automatically joined by commas.

In general, morekeys for a specific letter such as "a" for a specific language should contain letters required to type in that language. Other general morekeys can be placed in the "misc_a", and the user has the option to disable these extra letters.

Updating

After updating a json file it's necessary to run the src/generate.py script to update the corresponding java file. This script must be run in the make-keyboard-text-py directory by running python3 src/generate.py. It is dependent on relative paths and it's necessary to be in the make-keyboard-text-py directory.