מקלדת וירטואלית

הקלידו בשפה אחרת עם מקלדת על המסך: פריסות לאומיות אמיתיות, מיפוי לפי מיקום, מקשים מתים, שכבת AltGr, הרכבת הברות בקוריאנית ורומאג׳י ביפנית — הכול בדפדפן.

מקשי החצים מזיזים בין המקשים שעל המסך ו-Enter לוחץ על המקש. Tab יוצא מהמקלדת; המקלדת שלכם מקלידה ישירות לתיבת הטקסט.

מקשים פיזיים ממופים לפי מיקום: כל מקש מקליד את מה שהפריסה הנבחרת מציבה באותה עמדה, יהיה מיפוי המערכת אשר יהיה. הלכידה חלה רק כשתיבת הטקסט בפוקוס — Ctrl+C, Tab והחצים ממשיכים לעבוד.

כלי אחד, שלוש־עשרה שפות

המקלדת הזו מקלידה את שלוש־עשרה השפות שהאתר הזה כתוב בהן, ולכל אחת מהן היא מציגה את הפריסה שדוברי השפה באמת משתמשים בה — לפי כלל פשוט: הפריסה התקנית של המדינה עם מספר הדוברים הגדול ביותר. עברית היא תקן SI-1452, צרפתית היא AZERTY, גרמנית היא QWERTZ, רוסית היא ЙЦУКЕН, ספרדית היא הפריסה הלטינו־אמריקאית, פורטוגזית היא ABNT2 הברזילאית, טורקית היא Turkish Q, יפנית היא פריסת הקאנה של JIS וקוריאנית היא Dubeolsik. הבורר מציג כל פריסה בשמה שלה ובשפתה שלה, כי מי שמחפש את שפתו מזהה את שמה־העצמי בכל שפת ממשק.

רשומה אחת משעממת בכוונה: אינדונזית. לאינדונזיה אין פריסת מקלדת לאומית — המדינה מקלידה על US QWERTY, אותה פריסה כמו אנגלית — והתשובה הכנה היא לומר זאת במקום להמציא פריסה שאף אינדונזי לא ראה מעולם. הכלי נפתח בפריסה של השפה שבה אתם קוראים אותו, ואפשר לעבור לכל אחת מהאחרות בכל רגע; הטקסט שהקלדתם נשאר במקומו כשעוברים.

מיפוי לפי מיקום: הפריסה שלכם לא משנה

הקלידו במקלדת הפיזית והכלי קורא כל מקש לפי מיקומו על הלוח, לעולם לא לפי התו שמערכת ההפעלה חושבת שהוא מפיק. המקש שתי שורות מעל מקש הרווח, אחד מימין ל‑J — עמדת K — מקליד k תחת US QWERTY ו‑ל תחת הפריסה העברית, תהיה הפריסה המותקנת במחשב אשר תהיה. ההיפוך הזה הוא כל הרעיון: אילו הקשיב הכלי למערכת ההפעלה, הוא היה רק מהדהד אליכם חזרה את הפריסה שלכם, ולעולם לא היה יכול להקליד שפה שאין לכם פריסה מותקנת עבורה.

לחיצה על מקש שעל המסך והקשה על הלוח הפיזי עוברות דרך אותו מנגנון בדיוק, ולכן השתיים לעולם לא יחלקו על מה שמקש עושה. בזמן הקלדה פיזית, המקש שנלחץ נדלק על המקלדת שעל המסך — וכך לומדים היכן גרים התווים של פריסה לא מוכרת, כמו שמדבקות מקלדת מודפסות לימדו פעם.

הלכידה צרה בכוונה. מקשים פיזיים נקראים רק כשתיבת הטקסט בפוקוס, כך ששאר הדף ממשיך לעבוד כרגיל. קיצורים כמו Ctrl+C, Ctrl+V, Ctrl+A ו‑Ctrl+Z עוברים ישר לדפדפן, וכך גם מקשי החצים, Home, End ו‑Delete — ו‑Tab לעולם לא נבלע, כי כלי שאוכל את Tab לוכד בדף כל מי שמנווט במקלדת.

דבר אחד שיכול לחסור ללוח פיזי הוא מקשים. הפריסות האירופיות כאן הן לוחות ISO: יש בהן מקש מאה־ושניים בין ה‑Shift השמאלי לאות הראשונה בשורה התחתונה, ול‑ABNT2 הברזילאית יש מקש ארבעים־ותשעה נוסף ליד ה‑Shift הימני. ללוח ANSI בסגנון אמריקאי אין אף אחד מהם, ולכן שום הקשה שלכם לא תגיע אליהם — אבל הם מצוירים על המקלדת שעל המסך כמו כל מקש אחר, ולחיצה עליהם מקלידה בדיוק את מה שהפריסה מציבה שם. שום דבר בפריסה אינו בלתי־נגיש; על הלוח הלא נכון חלק קטן ממנה נגיש רק בעכבר.

שכבות: Shift, Caps Lock, AltGr ומקשים מתים

מקלדת אמיתית מקלידה יותר תווים משיש לה מקשים, והיא עושה זאת בשכבות. החזקת Shift בזמן הקשה מקלידה את שכבת ה‑Shift; לחיצה על ה‑Shift שעל המסך, לעומת זאת, נועלת אותו לתו אחד בדיוק, כפי שמקלדות על מסך מתנהגות בכל מקום. Caps Lock צר ממה שנהוג לחשוב: הוא מגדיל רק את המקשים שבהם שכבת ה‑Shift היא באמת האות הרישית של אות הבסיס, ולכן הוא הופך a ל‑A אבל לעולם לא הופך 1 ל‑!. בכתב שאין בו אותיות רישיות כלל — עברית היא כזה — Caps Lock לא עושה דבר, וזה בדיוק מה שעושה גם מקלדת עברית אמיתית.

הפריסות האירופיות נושאות שכבה שלישית שמגיעים אליה עם AltGr, שבה גרים תווים כמו @, € וזוגות הסוגריים, ומקשים מתים עם ההתנהגות התקנית: מקישים את סימן ההטעמה ואז את האות, והשניים מתרכבים — מקש מת ואז רווח נותן את הסימן עצמו, ואות שהסימן לא יכול להצטרף אליה פשוט מגיעה אחריו. מקש מת ממתין מסומן על המקלדת שעל המסך, כך שהשקט בין שתי ההקשות נראה ולא מבלבל.

שני פרטים עבריים נראים כמו באגים והם התקן. הפריסה משקפת את התוחמים הזוגיים שלה — Shift+9 מקליד ) היכן ש‑US QWERTY מקליד ( — כי התקן ממפה את התו הלוגי, ואלגוריתם הטקסט הדו־כיווני משקף אותו חזרה כשהטקסט מצויר; המקש שנראה כמו סוגר פותח מפיק על המסך סוגר פותח. ותיבת הטקסט עצמה מתהפכת לימין־לשמאל כשבוחרים עברית או ערבית, כי הכיוון שייך לטקסט המוקלד, לא לשפת הדף שסביבו.

יפנית וקוריאנית הן שיטות קלט, לא רק פריסות

ברוב השפות מקלדת היא טבלה: עמדת מקש אחת, תו אחד. קוריאנית ויפנית צריכות יותר מטבלה. Dubeolsik הקוריאנית מקלידה ג׳אמו — עיצורים ותנועות בודדים — ושיטת קלט מרכיבה אותם לגושי הברה תוך כדי: ㅎ ואז ㅏ ואז ㄴ נעשים 한, תנועות מורכבות ועיצורים סופיים כפולים נבנים באותה דרך, ועיצור סופי נישא אל ההברה הבאה כשמה שבא אחריו הופך את זו לקריאה הנכונה. Backspace מפרק את ההרכבה אחורה ג׳אמו אחר ג׳אמו במקום למחוק הברה שלמה, כי כך מתנהגת כל שיטת קלט קוריאנית, וכל דבר אחר הופך תיקון טעות לסיוט.

יפנית מגיעה בשני מצבים. ברירת המחדל היא קלט רומאג׳י במקלדת הפיזית — מקלידים ka ומופיע か, עם הטיפול התקני ב‑っ הקטן וב‑ん — כי כך רוב ההקלדה היפנית באמת קורית. המקלדת שעל המסך מציגה את פריסת הקאנה של JIS, שבה כל מקש הוא הברה, ומצב JIS מיקומי קיים למי שבאמת מקליד כך. מתג מחליף את הפלט בין היראגאנה לקטקאנה.

מה שהכלי בכוונה לא עושה הוא להמיר קאנה לקאנג׳י. המרה אמיתית דורשת מילון של מאות אלפי מילים ומודל דירוג מעליו — IME, לא מקלדת — ולשלוח גרסה גרועה היה גרוע יותר מלא לשלוח כלל: הייתם מקבלים טקסט סביר ושגוי בלי שום דרך לראות זאת. פלט קאנה בלבד נאמר כאן במפורש, כדי שהגבול יהיה מובן ולא מתגלה.

רץ בדפדפן שלכם

הפריסות הן נתונים שמגיעים עם הדף וכל הקשה מטופלת מקומית. שום דבר שאתם מקלידים לא מועלה, לא נשמר ולא נרשם — וזה חשוב בכלי הקלדה יותר מברוב הכלים, כי מה שאנשים מקלידים במקלדת הוא לרוב בדיוק הטקסט שחשוב להם. הלכידה תחומה לתיבת הטקסט, כך שהכלי לא רואה מקש שנלחץ בשום מקום אחר, וסגירת הלשונית לא משאירה דבר מאחור.

שאלות נפוצות

למה לחיצה על מקש K מקלידה ל?
כי מקשים ממופים לפי מיקום פיזי, לא לפי התו שמערכת ההפעלה מדווחת. תחת הפריסה העברית עמדת K נושאת את האות ל, ולכן זה מה שהיא מקלידה — בלוח שלכם ובמקלדת שעל המסך כאחד. זה מה שמאפשר להקליד שפה שאין למחשב שלכם פריסה מותקנת עבורה.
האם אני צריך שהשפה תהיה מותקנת במחשב?
לא. הכלי לעולם לא שואל את מערכת ההפעלה מה מקש אומר — הוא פותר כל מקש מול הפריסה הנבחרת בעצמו. למחשב שלכם יכולה להיות כל פריסה, או אף אחת מהרלוונטיות, והטקסט המוקלד יוצא אותו דבר.
למה Ctrl+C המשיך לעבוד בזמן ההקלדה?
בכוונה. קיצורי מקשי ההחלפה, מקשי החצים, Home, End, Delete ו‑Tab מועברים ישר לדפדפן במקום להילכד, כך שהרגלי עריכה רגילים — העתקה, הדבקה, ביטול, בחירת הכול — ממשיכים לעבוד בתוך תיבת הטקסט, וניווט המקלדת ממשיך לעבוד מחוצה לה.
האם הוא יכול להמיר קאנה יפנית לקאנג׳י?
לא, בכוונה. המרת קאנג׳י דורשת IME — מילון של מאות אלפי מילים ומודל דירוג — וגרסה גרועה מייצרת טקסט סביר ושגוי, שגרוע מכלום. הכלי מקליד היראגאנה וקטקאנה, עם קלט רומאג׳י במקלדת הפיזית, ואומר זאת במקום לתת לכם לגלות את הגבול.
למה Shift+9 מקליד בעברית סוגר סגירה?
הוא מקליד את התו הלוגי שתקן SI-1452 מציב שם, ואלגוריתם הטקסט הדו־כיווני משקף אותו כשטקסט ימין־לשמאל מצויר — כך שעל המסך רואים בדיוק את הסוגר שמצויר על המקש. "לתקן" את זה היה שובר כל סוגריים שמוקלדים בעברית.
במקלדת שלי אין מקש ליד ה‑Shift השמאלי. אפשר בכל זאת להקליד אותו?
כן, בלחיצה עליו. הפריסות האירופיות הן לוחות ISO שיש בהם מקש מאה־ושניים במקום הזה, ול‑ABNT2 הברזילאית יש מקש נוסף ליד ה‑Shift הימני; ללוח ANSI בסגנון אמריקאי אין אף אחד מהם. שניהם מצוירים על המקלדת שעל המסך, ולחיצה עליהם מקלידה את מה שהפריסה מציבה שם — כך ששום תו של פריסה אינו מחוץ להישג יד, יהיה הלוח שברשותכם אשר יהיה.
האם משהו שאני מקליד נשלח לשרת?
לא. המקלדת כולה — פריסות, מיפוי, הרכבה — רצה בדפדפן שלכם. הקשות מטופלות מקומית, דבר לא מועלה ולא נרשם, והלכידה חלה רק כשתיבת הטקסט בפוקוס, כך שמקשים שנלחצים במקומות אחרים בדף כלל לא נראים.