ID:2875936
 
Resolved
BYOND Version:514
Operating System:Windows 10 Home 64-bit
Web Browser:Chrome 114.0.0.0
Applies to:Dream Maker
Status: Resolved

This issue has been resolved.
Descriptive Problem Summary:
Most Cyrillic letters are registered correctly as corresponding keys on English layout.

But if the corresponding key is not a letter, but a symbol, the output is incorrect.

Numbered Steps to Reproduce Problem:
1. Map "Any[[*]]" to a verb that will output the pressed key.
2. Press keys using a Cyrillic layout.

Expected Results:
(key pressed - result)
"Й" = "Q"
"Ф" = "А"
"Ы" = "S"
"3" = "P"
(...)
"Ё" = "~"
"Б" = ","
"Ю" = "."
"Ж" = ";"
"Э" = "\""
"Х" = "["
"Ъ" = "]"

Actual Results:
"Й" = "Q"
"Ф" = "А"
"Ы" = "S"
"3" = "P"
(...)
"Ё" = "Q"
"Б" = "1"
"Ю" = "N"
"Ж" = "6"
"Э" = "M"
"Х" = "E"
"Ъ" = "J"

This is the example for Russian layout. Other non-English layouts will most likely have the same issue.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
It was always like this. Happens on both the latest stable and latest beta builds.
Key mapping has been an ongoing problem with Cyrillic in particular. The problem is I'm not using a Cyrillic layout and can't figure out a good way to test this.
The number and position of keys is the same as on any standard QWERTY keyboard. https://images-cdn.ubuy.co.in/ 635190f3ee764b598e5b3bd7-hrh-russian-language-silicone-keybo ard.jpg
The only notable difference is that some of English special characters keys are mapped to extra letters in Russian, and these are exactly the keys that cause issues.

A good way to test that:

1. Install a language pack (on Windows 10, languages are easily added through the Language & Region tab in the settings).

2. Change your input language to Russian or whatever.

3. Since the expected result is an English layout key, regardless of the input language, you don't need to know anything about the non-English layout that you use:

If you (while in Russian layout mode) press Q and it results in Q being registered, everything's fine.

If you press ";" and get "6" instead, then the input key is being mapped incorrectly and should be debugged from there.

Changing languages on my end isn't really an option currently. That's been a sticking point for any debugging.
Changing languages on my end isn't really an option currently

Has this changed?
If so, bump
As of 515.1628, this issue appears to have been fixed by the changes in:
https://www.byond.com/forum/post/2694120#comment26653352
Lummox JR resolved issue
Marked resolved, related to id:2694120.