|
מבוא לאלגוריתם הדו-כיווני
הדוגמא הבאה ממחישה את ההתנהגות המצופה
מהאלגוריתם הדו-כיווני.בדוגמא זו יש טקסט באנגלית, הדורש כיוון
משמאל לימין, וטקסט בעברית, הדורש כיוון מימין לשמאל. פנו
לקובץ guide4-example2.html.htmוהריצו אותו על גבי הדפדפן
בכדי לראות את הפונקציונליות של הדוגמא הקודמת. יסודות הנקבעים מראש ע"י המעבד, inline
elements, אינם יורשים את תכונת ה-dir.משמעו של דבר הוא, שיסוד
מסוג זה ללא תכונת dir בתוכו אינו פותח שלב נוסף של טקסט משובץ
בהתאמה לאלגוריתם הדו-כיווני.יסוד נקבע להיות קבוע מראש או מקונן
כתת-גוש בהתאם לתצוגת ברירת המחדל שלו.שימו לב , כי יסודות ה-INS
וה- DEL יכולים להיחשב כמקוננים או כנקבעים מראש בהתאם לנסיבות. קביעת הכיווניות של טקסט משובץ האלגוריתם הדו-כיווני מתאים כיווניות לטקסט
משובץ בהתאם לכללי הירושה באופן אוטומטי,כמומחש בדוגמא הקודמת.למרות
זאת, באופן כללי, רק שלב אחד של טקסט משובץ יכול לקבוע את ערכי
ה-dir עבורו.על מנת להחיל את התופעה עבור שלבים נוספים, עליכם
להשתמש בתכונת ה-dir ביסודות הנקבעים מראש (inline element). english <span dir="RTL">Hebrew2 english3 Hebrew4</span>english5 Hebrew6 כותבי אתרים עלולים להשתמש בתווי Unicode
מיוחדים למען השיג שינויים רבים בכיוון משובץ.על מנת להשיג שיבוץ
טקסט עם כיוון משמאל לימין, הקיפו את הטקסט בתווים LEFT-TO-RIGHT
EMBEDDING ("LRE" או 202A באופן הקסדצימלי) וב-POP DIRECTIONAL
FORMATTING ("PDF" או 202C באופן הקסדצימלי).על מנת להשיג כיוון
מימין לשמאל בטקסט משובץ, הקיפו את הטקסט הנבחר בתווים RIGHT-TO-LEFT
EMBEDDING ("RTE" או 202B באופן הקסדצימלי) ובPDF. שימוש בכיוון HTML ביחד עם תווי Unicode מפתחי אתרים ומתכנני תוכנות עריכה צריכים
להיות מודעים להתנגשויות , העלולות להיווצר אם תכונת ה-dir משומשת
ביסודות הנקבעים מראש (כולל BDO), באופן מקביל לשימוש בתווי ה-Unicode
המתאימים.מוטב כי אחת השיטות תיעשה באופן ייחודי.שיטת הסימון הגבוהה
של HTML מציעה אמינות מבנית גבוהה יותר של מסמך ומקלה בבעיות שונות
בעת עריכת מסמך HTML דו-כיווני ע"י עורך טקסט פשוט.מנגד, תוכנות
שונות מתאימות יותר לשימוש בתווי Unicode.אם שתי השיטות ננקטות
בעת ובעונה אחת, אזי, תשומת לב רבה נדרשת על מנת להבטיח קינון
ודריסה תקניים של סימוני HTML ושל תווי Unicode , אחרת, התוצאה
עלולה להיות לא מוגדרת. דריסת האלגוריתם הדו-כיווני : יסוד ה-BDO האלגוריתם הדו-כיווני ותכונת ה-dir באופן
כללי הינם משביעי רצון בכל הקשור לשינויי כיוון של טקסט משובץ.ברם,
בכמה מצבים האלגוריתם הדו-כיווני עלול להביא לתוצאה לא נכונה. כל זאת אומר לאלגוריתם הדו-כיווני "עזוב
אותי משמאל לימין !" והתוצאה הנכונה תתקבל: עיון בתווי כיוון ובקרה משותפת היות ודו-משמעיות לעתים נוצרת בהקשר לכיווניות
של תווים מסויימים (לדוגמא סימני פיסוק), מפרט ה-Unicode כולל
תווים היכולים לאפשר את ההצגה הנכונה של מערך תווים נתון.כמו כן,
ה-Unicode כולל מספר תווים לשליטה על התנהגות משותפת במקום שהדבר
הכרחי (לדוגמא מספר מצבים בשפה הערבית) .HTML 4 כולל מאגר תווים
כאלו ליישום מטרות אלו. !ENTITY zwnj CDATA "”--=zero width
non-joiner-- יישות ה-zwnj משמשת לחסום התנהגות משותפת
בתכנים בהם שיתוף עלול להופיע, אולם אסור שיהיה שיתוף, כי תיגרם
דו-משמעיות בטקסט ! יישות ה-zwj עושה את ההפך: היא מכריחה שיתוף
במקום שהוא לא יופיע , אך מחוייב שיופיע.לדוגמא, האות הערבית “HEH”
משמשת לקיצור של “Hijri”, שמה של מערכת השנתון האיסלמית.היות והצורה
המבודדת של ה-“HEH” נראית כמו הספרה חמש , יכולה להיווצר דו-משמעות
באופן כזה ש-“HEH” יכולה להיחשב כספרה חמש סופית בשנה כלשהיא.למניעת
בלבול, המשמעות של “HEH” ,כראשי תיבות,משומשת.לעומת זאת, אין שום
טקסט נלווה אליו “HEH” יכולה להצטרף.בעזרת יישות ה-zwj ניתן לממש
תכנים אלו. השפעת שינוי הסגנון על דו-כיווניות באופן כללי, שינויים בסגנון המסמך המתאפיינים
בהפיכת גוש מקונן לנקבע מראש (inline) , ולהיפך היא ישירה למדי.לעומת
זאת, היות והאלגוריתם הדו-כיווני מתבסס על ההבחנה בין מצבים אפשריים
אלו, תשומת לב מיוחדת צריכה להינקט בנמן שינויים אלו. סיכום ביניים:עד עתה למדנו איך להגדיר
את השפה ואת כיוון ההצגה של טקסט, או של חלקים ממנו.
|
|