feat: add switch_keyboard_layout dispatch

This commit is contained in:
DreamMaoMao 2025-06-10 12:38:56 +08:00
parent 26400b06a8
commit c8e7e3d528
4 changed files with 256 additions and 2 deletions

79
src/data/static_keymap.h Normal file
View file

@ -0,0 +1,79 @@
typedef struct {
const char *full_name;
const char *abbr; // 全部使用小写
} LayoutMapping;
static const LayoutMapping layout_mappings[] = {
{"English (US)", "us"},
{"English (UK)", "uk"},
{"Russian", "ru"},
{"German", "de"},
{"French", "fr"},
{"Spanish", "es"},
{"Italian", "it"},
{"Japanese", "jp"},
{"Chinese", "cn"},
{"Korean", "kr"},
{"Arabic", "ar"},
{"Hebrew", "il"},
{"Greek", "gr"},
{"Turkish", "tr"},
{"Portuguese", "pt"},
{"Portuguese (Brazil)", "br"},
{"Swedish", "se"},
{"Norwegian", "no"},
{"Danish", "dk"},
{"Finnish", "fi"},
{"Polish", "pl"},
{"Czech", "cz"},
{"Hungarian", "hu"},
{"Ukrainian", "ua"},
{"Belarusian", "by"},
{"Bulgarian", "bg"},
{"Croatian", "hr"},
{"Romanian", "ro"},
{"Serbian", "rs"},
{"Slovak", "sk"},
{"Slovenian", "si"},
{"Estonian", "ee"},
{"Latvian", "lv"},
{"Lithuanian", "lt"},
{"Dutch", "nl"},
{"Flemish", "be"},
{"Swiss German", "ch"},
{"French (Canada)", "ca"},
{"French (Switzerland)", "ch-fr"},
{"Icelandic", "is"},
{"Maltese", "mt"},
{"Irish", "ie"},
{"Albanian", "al"},
{"Macedonian", "mk"},
{"Bosnian", "ba"},
{"Montenegrin", "me"},
{"Dvorak", "dv"},
{"Colemak", "cm"},
{"Workman", "wm"},
{"Norman", "nm"},
{"QGMLWY", "qg"},
{"AZERTY", "az"},
{"QWERTZ", "qz"},
{"BÉPO (French ergonomic)", "bepo"},
{"Neo", "neo"},
{"Turkish F", "trf"},
{"Tibetan", "bo"},
{"Thai", "th"},
{"Vietnamese", "vn"},
{"Lao", "la"},
{"Khmer", "kh"},
{"Hindi", "in"},
{"Persian", "ir"},
{"Urdu", "pk"},
{"Bangla", "bd"},
{"Sinhala", "lk"},
{"Nepali", "np"},
{"Tamil", "ta"},
{"Telugu", "te"},
{"Kannada", "kn"},
{"Malayalam", "ml"},
{NULL, NULL} // 结束标记
};