Custom language for Microsoft Keyboard Layout Creator (MSKLC)

I don't have any real solution, the workaround - is to create a keyboard-map and categorise it as a language which is not likely to be used side-by-side with your target language (in your case Khasi).

I'll share my experience, let's try to solve this together.

I know that some [SIL] issued windows keyboard maps - chose this same solution - for example the SIL-IPA map - categorised itself as "Icelandic" (mentioned in some readme "(I) - to match IPA" as a mnemonic).

I've recently made keyboard maps for the Fur language by request (iso 639-3: fvr) - and I chose to categorise it as a "Māori" keyboard, as I was looking for the language least possible for a user to need to co-type with Fur.

(Fur keyboard maps example)

The obvious minuses of that are:

  • The visible language code in Windows - says "MR" or "MRI" instead of something reminding names of Fur (Poór'íŋ belé)
  • Any future spell-checking tool, language-support-pack or online tool that wants to query system languages - gets the wrong impression
  • Creating any system-wide spell-checking tool etc - will have to be aware of that random choice - thus it's better for a language community to synchronise on this
  • Possibility that some user of the keyboard - will also have to type Māori, use Māori spellcheckers etc

I've corresponded with a group working on Masalit language (Iso-639 mls/mdg) - they did the same solution with "Turkish" as their mapping.

(Masalit keyboard examples)

I've tried various fiddlings with "MSKLC" - and I've figured out that if you use any non-listed language code that MSKLC doesn't know - it'll compile the output keyboard installer with the default language installed on your system, which is really not what we want.

What I have tried:

  • As mentioned in other keyboard related posts here - language codes in the system seem to be defined in the registry HKLM\System\CurrentControlSet\Control\Keyboard Layouts
  • However - MSKLC - seems to be grabbing the list from some other place - ie: on a computer here: the whole registry doesn't contain any keyboard for the "Fula" language (ISO-639-3 ful) - but MSKLC contains "Fulah" twice in their language list
  • I've created registry keys with made-up language-codes and tried to refer to them - but they both didn't show up in MSKLC, nor if I would refer to them in the text-representation .klc file - MSKLC - compiled a keyboard coded as "English" on that system
  • Maybe there's a commandline version that compiles .klc files without changing them - that can map to the newly created language codes

That's all I know for now, I'll be happy to hear of real solutions, or post one if I get there!


Note -- I've just found this link - which seems to be doing something like that - I cannot add the link as I don't have the 'reputation' here to do so: the title is "MSKLC keyboard layout names in your own language by Michael S. Kaplan," - it seems to be not simple, once anyone can get it working - it could be cool to make a small script(?) or tool to wrap it.

MSKLC keyboard layout names in your own language

there's also a discussion on 'cpan' that note that "(the last 4 digits match the codepage in the .klc file)" - I'll try that soon.