@רפאל לקחתי את הדבר היפה הזה לעוד מקום:
כשמקלידים טופס או מכניסים איש קשר וכדו' יש איזה קטע מציק כשמגיעים לשדה אימייל עוברים לאנגלית וחוזרים אח"כ (לכן לפעמים שוקל כבר להשאיר לסוף למרות החשיבות..) וזה במצב הטוב, לפעמים מגלים רק בסוף שהוקלד בעברית.
אז חשבתי אולי לבדוק בסוף אם נכתב בעברית ולתקן לאנגלית, כך אפשר לומר לכתחילה תקלידו בעברית.
export function input31_keyPress(event) {
let key = event.key;
if (key === "Enter" || key === "Tab") {
let text = "qwertyuiopasdfghjklzxcvvbnmQWERTYUIOPASDFGHJKLZXCVBNM,.;",
tw = $w('#input31').value
let bbb = text.indexOf(tw.charAt(0))
if (bbb === -1) {
$w('#input31').value = converter.convert(tw)
}
$w('#input32').focus()
}
}
class LayoutConvertor {
convert(str) {
return str.replace(/./g, x => this.#lookup.get(x) ?? this.#lookup.get(x.toLowerCase()) ?? x)
}
#lookup = new Map([
["/", "q"],
["'", "w"],
["ק", "e"],
["ר", "r"],
["א", "t"],
["ט", "y"],
["ו", "u"],
["ן", "i"],
["ם", "o"],
["פ", "p"],
["]", "[ "],
["}", "{"],
["[", "]" ],
["{", "}"],
["\\", "\\"],
["|", "|"],
["ש", "a"],
["ד", "s" ],
["ג", "d"],
["כ", "f"],
[ "ע", "g"],
["י", "h"],
["ח", "j"],
["ל", "k"],
["ך", "l"],
["ף", ";"],
[":", ":"],
[",", "'"],
[ "\"", "\""],
["ז", "z"],
[ "ס", "x"],
[ "ב", "c"],
[ "ה", "v"],
["נ", "b"],
[ "מ", "n"],
[ "צ", "m"],
["ת", ","],
[">", "<"],
[ "ץ", "."],
["<", ">"],
[".", "/"],
["?", "?"],
[ "@", "@"]
]);
}
const converter = new LayoutConvertor()