למה העברית יוצאת הפוכה בהדפסת תלת מימד, ואיך לתקן
הקלדתם "שלום" בכלי לתלת־ממד וקיבלתם "םולש"? זו לא תקלה שלכם. בקצרה: הכלי מניח אותיות רק משמאל לימין. הפתרון הוא כלי שמבין עברית, לא היפוך ידני. העורך נמצא ממש למטה.
מה בעצם קורה
במחשב, טקסט עברי נשמר בסדר שבו קוראים אותו: ש, אחריה ל, אחריה ו, ובסוף ם. כשמציגים אותו, התוכנה צריכה לדעת שעברית נכתבת מימין לשמאל, ולהציב את ה־ש בצד ימין. דפדפן, וואטסאפ ו־Word עושים את זה.
כלים רבים לעיצוב תלת־ממד נבנו לאנגלית בלבד. הם לוקחים את האותיות בסדר שבו הן שמורות ומניחים אותן אחת אחרי השנייה משמאל לימין. ה־ש, שנשמרה ראשונה, נוחתת בצד שמאל, והמילה יוצאת הפוכה:
למה היפוך ידני הוא רק פלסטר
הפתרון המקובל הוא להפוך את הטקסט באתר להיפוך טקסט, ולהדביק את התוצאה בכלי. למילה אחת זה עובד. אבל ההיפוך הופך הכול, וחלק מהדברים לא היו צריכים להתהפך:
- מספרים. מספרים נכתבים משמאל לימין גם בעברית. הופכים את "דירה 12", והמספר יוצא 21.
- אנגלית באמצע. "הבית של Noam" הופך ל־"maoN לש תיבה". את המילה באנגלית צריך להפוך בחזרה בנפרד.
- ניקוד. סימן ניקוד שמור מיד אחרי האות שלו. אחרי היפוך הוא בא לפניה, ונצמד לאות הלא נכונה.
- כמה שורות. היפוך של כל הבלוק הופך גם את סדר השורות: השורה הראשונה יורדת למטה.
מה העורך הזה עושה אחרת
הוא לא הופך כלום. הוא עושה את מה שדפדפן עושה: קובע לכל תו את הכיוון שלו לפי אלגוריתם הכיווניות של יוניקוד (Unicode Bidirectional Algorithm) — עברית מימין לשמאל, מספרים ואנגלית משמאל לימין — ואז ממקם כל אות וכל סימן ניקוד לפי מה שהגופן עצמו קובע, עם מנוע העימוד HarfBuzz, אותו מנוע שמעמד טקסט בכרום ובאנדרואיד.
התוצאה: מקלידים רגיל, כמו בוואטסאפ, ומקבלים שלט שמודפס כמו שהקלדתם — כולל ניקוד, שמודפס מחובר לשלט: