Canonicality question

My keyboard has these warnings:

These are the tags:

What should I change?

I had these warnings after upgrading to Keyman Developer 14. I just followed the suggested codes and everything worked.
I also updated lexical model accordingly. That worked for me.


Slightly off topic…I would urge you not to mix scripts in one keyboard.

You should have one keyboard that will support Latin and those language tags should be
id and jv.

Then, for your Javanese keyboard use jv-Java, su-Java, etc as it recommends. We want the shortest tag possible. For jv the default script is Latn so that is not necessary for the Latin script keyboard, but Java is necessary.

This layout is for people who use the two scripts interchangeably, in social media and messaging apps, sometimes even in a single sentence, with me as primary tester, and my chat group as primary users. It’s not convenient at all to switch between layouts.

It should be just as easy to switch keyboards as it is to switch layouts.
Also, predictive text will be using just one script.

I guess we could have a predictive dictionary that included both scripts. This is a code switching challenge that we have already – not only with Keyman, but with keyboarding in general on computers and mobile devices. Many people do switch languages and/or script mid-sentence and computers currently don’t make that easy. I do it myself and it’s always annoying. What’s more, I don’t really care what the language tag is if I am sending a text message – so this is a case of the computer getting in the way of what I want to do.

That said, our current guidelines are as @Lorna says, to not mix and match scripts and languages in the same keyboard. The BCP 47 tagging for the keyboard becomes complicated – do you use jv-Latn or jv-Java? You can only use one!

I agree that switching keyboards is not particularly user friendly on our mobile devices. On Windows, win+space is pretty quick and we can also setup a hotkey to switch which is as easy as switching layouts within a single keyboard. On macOS and Linux there are similar shortcuts.

On Android, Ctrl+Tab on a Bluetooth keyboard will open the language switch but it still requires a slow interaction to select another keyboard.

I don’t have a better answer today!

Indonesian are bilingual and trilingual speakers (/writers/typers), so yes, code-switching is a feature in our languages that hurdled by technology. And most of my audience / users would be mobile (Android) users, not computer users. Since the new app could show the stats, I’ve seen around 100 monthly download of my past keyboard (j/jawa) from the app and from the website.

I’ve considered your arguments, and decided to let this layout to be -Latn- tags only, because my other keyboard, jawa_standar, would be geared more towards all -Java- tags. But I would still use the region tag (jv-Latn-ID), because Javanese is used in other countries, such as SEA countries, and Suriname. And I don’t claim to know the usage in those countries. So based on my first screenshot, should I just ignore the warning to change it to ‘jv’?

jv is considered canonically equivalent to jv-ID. Use of the language in another country would require the country tag as well (e.g. jv-MY for Malaysia, say). So you should use jv.

1 Like