אלגוריתם דו-כיווניות של יוניקודאלגוריתם דו-כיווניות של יוניקוד מאפשר קביעת כיוון זרימת מלל במערכות מחשב, מימין לשמאל או משמאל לימין. כדי לעמד מלל דו-כיווני כהלכה משתמש האלגוריתם בנתון סוג הכיווניות של תווים כדי לנתח את הטקסט ולפרק אותו לקטעים או רצפים של תווים, בעלי כיווניות מסוימת. לכל תו ניתן לקבוע כיווניות חזקה ימין-לשמאל, חזקה שמאל-לימין, חלשה ימין לשמאל, חלשה שמאל-לימין, ונייטרלי. באלגוריתם, תווים מטווח יוניקוד לעברית, ערבית, אשורית ודומותיהן נחשבים בעלי כיווניות ימין-לשמאל חזקה. תווי האלף-בית הלטיני נחשבים בעלי כיווניות שמאל-לימין חזקה. תווי מספרים נחשבים בעלי כיווניות שמאל-לימין חלשה. תווי פיסוק וניקוד נחשבים נייטרליים מבחינת כיוונם. תווים נייטרלייםבהכללה, קובע האלגוריתם את כיווניותם של תווים נייטרליים בהתאם להקשר שבו הם נמצאים: אם הם נמצאים בין שני תווים בעלי כיווניות חזקה אחת, הם יירשו אותה. לדוגמה, כאשר תווי פיסוק נייטרליים כמו פסיק ונקודה נמצאים בין תווים בעלי כיווניות ימין-לשמאל חזקה הם מקבלים אותה גם הם וממוקמים משמאל לתו האחרון במילה. מקרה מורכב מעט יותר הוא כזה שבו התו הקודם הוא בעל כיווניות מסוימת, אך עוקבו הוא בעל כיווניות אחרת. במקרה זה, יורש התו הנייטרלי את הכיווניות של התו הבא לפניו ברצף: ובכיוון ההפוך: מקרה מורכב עוד יותר מתרחש כאשר ישנו רצף של תווים נייטרליים מסוגים שונים הדורש הכרעה כיצד יש לסדרם. כאן, אלגוריתם דו-הכיווניות כשל לעיתים ורק בגרסתו האחרונה תוקנו בעיות כמו רצפים של תו>מקף>מספר/תו לטיני. קודם לכן, האלגוריתם שיבש את הסדר ודרש מיישומים שביקשו לתמוך בכיווניות נכונה במקרה נפוץ זה (בעברית) ליישם פתרונות "עוקפי-יוניקוד". בגרסת "אופיס 2000" של ערכת התכנות המשרדיות של מיקרוסופט הוגדרה כיווניות כללית לפסקה, ובהתאם לה התנהגו התווים הנייטרליים כאילו הם בעלי כיווניות ימין-לשמאל או שמאל לימין. בגרסה הנוכחית של האלגוריתם פתרונות כאלו אינם נחוצים. לדוגמה, המשפט הבא יוצג נכון באלגוריתם יוניקוד בגרסתו העדכנית: בעיות באלגוריתםבאלגוריתם ישנן עדיין מספר בעיות בשימוש בעברית (ובערבית). לדוגמה, רצף מלל כזה: יוצג בשימוש רגיל באופן שגוי: מקרה אחר קיים עם הטקסט הבא: המוצג באופן שגוי כך: בעיה נוספת נפוצה בכתיבת מספרי טלפון: הטקסט יוצג כאשר הקידומת מימין למספר הטלפון: כדי לפתור בעיות אלו ניתן לעשות שימוש בתווים סמויים מיוחדים המכניסים כיווניות ימין-לשמאל או שמאל-לימין. תוצאה נוספת אפשר לקבל כאשר מכניסים רווחי אפס בעלי כיווניות או תווים השוברים או מאחדים "הקשריות" (בערבית). זה אינו פתרון שמשתמשים רגילים יכולים לעשות בו שימוש בנקל, ועדיין נדרשת השלמה תוכנתית לחסר. תווי כיווניות סמוייםתקן יוניקוד מגדיר שני תווי כיווניות סמויים. תווים אלו אינם נראים במסמך ותפקידם לקבוע את כיווניות הטקסט שנמצא לפניהם ואחריהם.
תו נייטרלי שיוצב בסמוך לתו LRM, יירש את כיווניותו שהיא שמאל-לימין, ואילו תו נייטרלי שיוצב בסמוך לתו RLM, יירש את כיווניותו שהיא ימין-לשמאל. אופני השימוש בתווי כיווניות סמויים בפסקה עברית:
תווים אלה עדיין אינם כלולים במקלדת עברית תקנית. בטיוטת התקן הישראלי לפריסת מקלדת עברית ניתן להוסיף תו LRM באמצעות הצירוף AltGr+9, ותו RLM באמצעות הצירוף AltGr+0.[1] תקן זה מיושם בחלקו במערכת ההפעלה Windows, החל מ־Windows 8.[2] בנוסף, מערכות הפעלה ויישומים שונים מאפשרים הזנת תווי LRM ו-RLM במגוון דרכים:
ראו גם
קישורים חיצוניים
הערות שוליים |