How can Windows Keyman show updated BCP47/ISO639-3/Ethnologue codes?

I created a keyboard which works well for Tugbiri (grh) which formerly was misnamed Gbiri-Niragu in Ethnologue. This naming has been updated, and my Naija Type keyboard package specifies the name Tugbiri in its KPS file, but on Windows 10 in the language bar the language displays as Gbiri-Niragu. The problem seems to be associated with the ‘Add language to Keyboard’ menu in Keyman Configuration / Keyboard Layouts.

In other posts there has been a suggestion that Keyman should use a newer version of langtags.json. It’s possible the wrong/old data are in that file too. It would be helpful to know how to get the name changed.

To make life even more confusing, there is some inconsistency between the dialog to choose a new language and the language as displayed in Keyman Configuration, and the Windows Language Bar list:

Note Tugbiri-Niragu on the left. This was displayed after grh was typed into the dialog that didn’t recognise “Tugbiri”. But then the keyboard on the right is different.

Similar to this issue:

Please let me know if there’s anything I can do to fix this. I suggest someone may want to look around at where the data come from and try to improve consistency. If the KPS creator specifies a language name, could that not be used by Keyman?


Hi @rowbury,

Unfortunately, the language names in the Language Bar are coming from Windows, not from Keyman. Keyman reads the Windows language names and presents them in the keyboard install UI, because the name that will be seen in Windows is the one provided by the Windows language data. So, the best we can do there is to provide feedback to Microsoft (through their Feedback tool in Windows) that the language name is wrong for a given BCP 47 code.

In terms of the mismatch with what Keyman shows in two different locations, that’s something we can “improve”. Improve in quotation marks because we can really only go in the wrong direction – to make it more consistent with Windows! :frowning:

We do try to update the language tags in Keyman Developer periodically. Here’s what langtags.json shows right now for that tag, which matches the data shown in one place in the Keyman UI (see the name tag in the record below):

        "full": "grh-Latn-NG",
        "iana": [ "Gbiri-Niragu" ],
        "iso639_3": "grh",
        "localnames": [ "Tugbiri", "Tugbiri-Niragu" ],
        "name": "Tugbiri-Niragu",
        "names": [ "Gbiri-Niragu", "Gure-Kahugu", "Tugbiri" ],
        "region": "NG",
        "regionname": "Nigeria",
        "script": "Latn",
        "sldr": false,
        "tag": "grh",
        "tags": [ "grh-Latn", "grh-NG" ],
        "windows": "grh-Latn"

Hope this helps!

Thanks. I’ve sent Windows Feedback.

I had wondered whether for some of the ‘temporary’ languages that Windows supports if there was any way of overriding them. If I try adding grh to Windows 10 it doesn’t recognise it but Keyman allows me to add it, so I’m not sure at what point Windows is aware of grh existing.

The functionality for additional languages in Windows is quite buried! It’s not obvious, but it is possible to add another language by typing its language code, including script, into the Add Language dialog:

Keyman tries to simplify the process for the typical user who won’t want to deal with language tags :grin:

Well I never! I have only tried looking for language name or BCP47 code but not that with script. Thanks very much for the tip. And thanks for Keyman simplifying things for the user.

1 Like

You’re welcome! Lots of fun! :smiley: