‫החדרת תגי תמיכה בדו-כיווניות (BiDi) בשדות טקסט‬

הקדמה: פוסט זה הוא תגובה לפוסט של לירון נוימן בנושא הנ”ל. לירון שואל “מכירים את זה שאתם כותבים בעברית באתר בינלאומי כלשהו שלא תומך בכיווניות טקסט (למשל פייסבוק), ואז, לא רק שסימני הפיסוק שלכם יוצאים בצד הלא נכון, אלא גם שאם עירבתם גם אנגלית בטקסט, כל הסדר שלו מתחרבש?” הוא מסיים את הפוסט שלו ושואל “מי מתנדב להרים את הכפפה ולבנות איזה תוסף לשועל שיאפשר להוסיף את התווים האלה איפה שצריך…?”
ובכן, התשובה שלי היא ‘טוב, נו, אני אעשה את זה…’

הקדמה 2: פוסט זה הוא תרגום לעברית של הפוסט הקודם שלי, למקרה ואתם רוצים לקרוא את זה באנגלית או לחלוק עם אנשים בניכר.

הנה דוגמא לבעיה המתוארת:

ובכן, הפתרון (הנכון) לבעיה הזו היא כזו: יש לעטוף את הטקסט שאנחנו רוצים לשנות את הכיווניות שלו בתווי היוניקוד המציינים הטמעת כיווניות ימין לשמאל (או לחילופין שמאל לימין) בתחילת המחרוזת, ותו היוניקוד שמציין את סוף הכיווניות בסופה.
למידע נוסף, ראו כאן.

בשעתו, כשלירון כתב את הפוסט שלו, חשבתי לעצמי שזה עשוי להיות פרוייקט קטן וחביב – לכתוב תוסף לשועל, או סקריפט לקוף הגריז שמאפשר לך לעטוף טקסט שאתה כותב בתווים האלה, לטובת אלה שיבואו אחריך ויקראו את הטקסט שלך. אך מאז התוודעתי לבוקמרקלטים (סימניונות? יש לזה שם בעברית?), ולמדתי להעריך אותם עד מאד. אני חושב שסימניונת היא הדרך הטובה ביותר לפתור את הבעיה הזו, מאחר והן קטנות, קלות להתקנה ועריכה, ו(לפחות בתיאוריה) נתמכות על ידי כל הדפדפנים.

כשניגשתי לפתור את העניין, ידעתי שאני צריך להחדיר מחרוזת של תווים לפני ואחרי הטקסט המסומן בשדה-טקסט. ידעתי שראיתי את זה נעשה איפהשהו… אה, כן! ממש כאן, במערכת של WordPress, כשרוצים לסמן טקסט כמודגש או נטוי.
אז הלכתי למצוא את קוד הג’אווהסקריפט שעומד מאחורי היכולת הזו (זו פונקציה בשם edInsertTag), והוצאתי את החלקים שרלוונטיים לצורך שלי ולפיירפוקס (הרבה מהפונקציה המקורית נועדה לתאימות דפדפנים).

ללא דיחוי נוסף, אני גאה להציג בפניכם את RTL ואת LTR.

פשוט קחו את הקישורים האלה, וגררו אותם לסרגל כלים של הסימניות שלכם (אני יצרתי לעצמי תיקיה של סימניונות שימושיות), ובפעם הבאה שאתם כותבים טקסט דו-כיווני, סמנו את הקטע שזורם בכיוון הלא-נכון ולחצו על הסימניונת הרלוונטית.
תוכלו לנסות זאת כאן:

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

6 Comments on "‫החדרת תגי תמיכה בדו-כיווניות (BiDi) בשדות טקסט‬"

  1. עובד מצויין על פיירפוקס 3.5.2 (אובונטו לינוקס)

  2. ‫עובד מצויין על פיירפוקס 3.5.2 (מק)‬

    ‫אילן, נפלת בפח…‬

  3. ‫‫עובד יופי בכרום
    (לפחות באתר שלך)
    הגעתי מ404. ‬‬

  4. אני שמח לשמוע שזה עובד גם בכרום!

    יהודה? למה התכוונת לגבי אילן?

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

Leave a comment

Your email address will not be published.

*