I'm trying to make a custom keyboard for my native language using Microsoft Keyboard Layout Creator (MSKLC). My native language is Khasi (iso-369-2 kha, iso-369-3 kha), which is not supported in Windows, so I get English (United States) as the language.

Is there any way to add my custom language, and if so, how do I get the LOCALEID?

  • We have the same need for another minority language. If anybody knows a place, where we can lobby Microsoft to start respecting and allowing more (or better all) languages, please give us the link. We do not need MS to do all the work, we can write our own keyboards and spell checkers. But Windows needs to allow those languages and needs to provide the codes and tags etc. we need. Jul 21, 2021 at 11:02

1 Answer 1


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.

  • 1
    Would be helpful to add a "MSKLC" tag, this topic is inherently difficult to search for, as it's only relevant for us trying to create keyboard layouts for minority (almost) languages not appearing in (some) official lists. (And most keyboard-map related questions would address topics around alternative layouts for officially supported languages)
    – oyd11
    Apr 5, 2017 at 9:22
  • 1
  • @oyd11 I tried adding the tag MSKLC but it does not exist and I do not have 300 points yet. There is the tag Microsoft-KLC already, but nobody would think to enter it like that. We all know (and love)(or hate) our MSKLC, do we not. So either please give me plenty love, so that I can create or edit that tag, or some veteran user please create for us MSKLC users the better tag. Thank you. Jul 21, 2021 at 11:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .