Incorrect script association

My polytonic Greek keyboard is coming along, but one issue has arisen. I compiled the package and installed into Windows 11. I set two languages, grc (ancient Greek) and el (modern Greek), as shown:

But Windows associates this keyboard with the Cypriot syllabary:

I see this same grc-Cptr-CY setting in the taskbar when I change languages.

I did nothing (that I can see) in Keyman to activate the syllabary, which is a totally different script than Greek, although the languages that were written in are forms of Greek.

Despite the weirdness, my keyboard works as expected in Notepad and LibreOffice Writer. Word, however, goes crazy. It ‘knows’ that the Cypriot syllabary is a RTL script and jumps back and forth between the two directions.

Any ideas about how to prevent Windows from making this association? The keyboard should be associated with the Greek script.

I’m not seeing why it would do that because my records show Grek is the default script for grc, but try to set the language tag (in the .kps) to grc-Grek. See if that makes a difference.

langtags.json gives grc-Cprt-CY as the maximal tag for grc, not grc-Grek (the tag and full properties are the relevant ones here:

 {
        "full": "grc-Cprt-CY",
        "iana": [ "Ancient Greek (to 1453)" ],
        "iso639_3": "grc",
        "name": "Greek, Ancient",
        "names": [ "Ancient Greek (to 1453)" ],
        "region": "CY",
        "regionname": "Cyprus",
        "regions": [ "GR" ],
        "script": "Cprt",
        "sldr": false,
        "tag": "grc",
        "tags": [ "grc-CY", "grc-Cprt" ],
        "windows": "grc-Cprt"
    },

Here is the record for grc-Grek:

    {
        "full": "grc-Grek-GR",
        "iana": [ "Ancient Greek (to 1453)" ],
        "iso639_3": "grc",
        "latnnames": [ "Hellēnikḗ" ],
        "localnames": [ "Ἑλληνική" ],
        "name": "Greek, Ancient",
        "names": [ "Ancient Greek (to 1453)" ],
        "nophonvars": true,
        "region": "GR",
        "regionname": "Greece",
        "script": "Grek",
        "sldr": false,
        "tag": "grc-Grek",
        "windows": "grc-Grek"
    },

If that is incorrect, then we should file an issue.

Hello @southwindows,

Can you confirm if RTL is checked in Keyman Developer? Follow this guide to see the location of the feature.

Let us know how it goes. Thanks!

Tracking also at #9099. It seems that there is a known bug in the language tag data (see also [CLDR-17160] - Unicode Consortium), not something the Keyman team will fix directly but it has been reported upstream for resolution. The workaround is to manually add the Grek script as suggested by Lorna.

I think Langtags is coming from CLDR which has this data. I added it here https://unicode-org.atlassian.net/browse/CLDR-17160?focusedCommentId=178098

To summarize here, what’s happening is that when a new script was added to Unicode… say Cypro-Minoan… there’s metadata about which language and region that’s associated with. That data is grc-Cprt-CY - somewhat speculative but probably OK. However, the problem is that same data was used by CLDR - in the absence of other information - to build the REVERSE mapping, that is from grc to grc-Cprt-CY as the default, which should probably be grc-Grek-GR.

Ok, I changed our langtags on September 10 so grc would mean Grek based on discussions with CLDR. That’s why Marc and I had different views of what is in langtags. I’m not sure when langtags.json will be published and I don’t know when Keyman will pick it up. In the meantime CLDR has to fix their issue.

So, for now grc-Grek is your langtag. Eventually, we might reduce it to grc when all systems pick it up.

1 Like

@mengheng – no, the RTL checkbox is blank (as it should be, since my goal was to use the Greek script).

1 Like

Thanks to everyone for the explanations! Making the Cypriot script the default for grc is definitely a mistake. I will follow Lorna’s suggestion for now, and (I expect) everything will operate as it should.

1 Like