What do I do with the Keyman "transcient languages" error

Basically I am trying to add something like “English (United States)”
to my keyboard (but customised for my language of course), but it is giving me the error shown in the image. I have searched up what this error means but I am pretty sure this is the first keyboard I have created so I don’t know what to do. The only thing I can think of is the fact that I constantly installed and uninstalled my keyboard before.
Btw this is happening when I’m trying to “Add language”.

The language I am talking about is a conlang I am making by the way.

Hi mataldin. Welcome to the community. You are using the may code which in ISO 639-3 actually represents a different language - Malay. It’s better not to co-opt a code that represents another language.

However, I don’t see that Maylakian has a 3 letter code in ISO 639-3. You might be better off using the und (Undetermined) language code.

In addition, rather than add the code through the “System Languages”, I believe you should add it to the Keyman keyboard. Open your .kpj file, then open the .kps file from there. In the .kps file you would then add und through the Keyboards tab as a BCP 47 tag. If you do that, then Keyman will handle the language associations.


I actually did that in the start though. I’ll consider the “may thing” though

Sorry that I didn’t mention it in the post but Maylakian isn’t a natural language (It’s just a conlang I created). (A conlang is a constructed language, basically an artificial one). To be honest since this is a conlang I am not sure if it’s possible to make it like that now that I think about it. Though I’m not exactly sure.

1 Like

You might consider using a “reserved for local use” language code in the range qaa-qtz. In addition, according to this site, you could register your conlang and its code (or at least avoid using one someone else is already using).

As an FYI, here’s a Keyman help article about Windows’ limit on 4 transient language codes.
(Though originally written for Keyman 14, I believe it still applies)


The “Background” section suggests:

You may need to remove other non-Keyman keyboard layouts in order to have sufficient spare transient language profiles.

As a follow-up from what @darcy wrote, recent versions of Windows have updated this limit from 4 transient languages to 12, and version 17 of Keyman will support that as well, which will help this problem.

All the best on your conlang!

Just as an FYI, we have the same problem trying to install just one language (rhg Rohingya) but three layouts for the 3 different scripts Rohingya is written in (rhg-Arab, rhg-Rhng and rhg-Latn) next to the en/de/mm/bn layouts that we need.

Our work around at our office is just to declare them as en layouts. (Very dirty I know but a working fix for us).

Hello @mickz,

Thank you for the follow ups. It seems that you’ve found a way around the issue.

I test it myself with a different language (does not have the Language tag) in Keyman Developer.

The pictures below explains how I do it, as I use und as a Language tag and add a Region tag (leaving the script tag blank).

After that, it stops referring the language with English

It does show Undetermined on the keyboard. If you do not want that then you could follow the instructions giving above.

Thank you!

This topic was automatically closed after 14 days. New replies are no longer allowed.