כתובת דפים קשורים: מדריך לעברית במערכת 10, DirectionService
כתיבה עברית באמצעות KeyXing ו-Unicode Hex Input
רקע
מערכת עשר בגרסה 10.2.4 לא תומכת עדיין באופן מלא בעברית. הבעיה העיקרית מופיעה בכיוון הפסקה שנשאר משמאל לימין, גם אם מיישרים את המלל לצד ימין.
דוגמא:
אתם מקלידים: "עברית ו-English במערכת עשר."
אבל מקבלים: ".במערכת עשר English-עברית ו"
הפתרון המתואר כאן מבוסס על
הצעה של
מיץ פטל בפורום מק באורט. מאחר ותוכנות Cocoa מבוססות על יוניקוד, אפשר לשלוט בכיווניות מלל על ידי הוספת
תווי בקרה בלתי נראים שיכולים לשנות את כיוון הפסקה משמאל לימין ומימין לשמאל.
התקנת פרישת מקלדת יוניקוד
כדי להכניס במלל תוי בקרה של יוניקוד, יש להתקין תחילה פרישת מקשים מתאימה. ב-System Preferences בחרו בהגדרות International. תחת הכרטיסיה Input Menu הוסיפו תמיכה ב-Unicode Hex Input.
הכנסת תווי בקרה באמצעות מקלדת יוניקוד
בתוכנות תומכות יוניקוד כמו TextEdit ו-Mail ניתן להוסיף תו בקרה על ידי החזקת Option והקשת מספר התו לפי הטבלה:
תוי הבקרה של יוניקוד
|
שם התו |
הקלדה |
הערות |
|
RLE |
Option+202B |
משנה את כיוון המלל שאחריו לימין לשמאל |
|
LRE |
Option+202A |
משנה את כיוון המלל שאחריו לשמאל לימין |
|
|
Option+202C |
מפסיק את כיוון המלל המיוחד וחוזר לכיוון הפסקה הרגיל |
הערות
תווי הבקרה הם בלתי נראים
התווים משפיעים על המלל שאחריהם, עד לתו הכיווניות הבא או סוף הפיסקה
צריך להוסיף תו כיווניות אחד לכל פיסקה לפחות
שליטה בכיווניות באמצעות Key Xing
התוכנה
Key Xing מאפשרת למפות בקלות מקשים לכל מיני קיצורי מקלדת שימושיים (מחרוזות טקסט, סקריפטים, שיגור תוכנות ועוד). בדרך הזאת ניתן למפות את מקש ה-Return כך שבתוכנות מוגדרות מראש יכניס תו כיווניות ימין לשמאל (Unicode RLE) לאחר כל ירידת שורה.
להלן ההגדרות המתאימות:
כדי למפות את הצירוף Option+R לתו RLE, לחצו על Add Text Paste ובחלון שנפתח הוסיפו תו RLE לשדה Text to Paste. סיימו את הפעולה בלחיצה על Choose והקשת צירוף המקשים שבחרתם (Option+R במקרה הזה).
כדי למפות את המקש Return, הוסיפו טקסט שכולל תחילה ירידת שורה (Return) ואז תו RLE. מומלץ ללחוץ על Show Filters ולהוסיף Enable ואת רשימת התוכנות שבהן אתם מעוניינים לשנות את מקש ה-Return לייעודו החדש (למשל TextEdit ו-Mail).
במצב הזה יכולות להיות בעיות של כיוון פסקה עברי בכתיבת מלל אנגלי. ישנן שתי דרכים להמנע מהבעיה:
שימוש במקש ה-Enter בפינה הימנית של המקלדת
הגדרה של הצירוף Option+Return לירידת שורה רגילה (ללא RLE). את ההגדרה הזאת ניתן לבצע באותו אופן כמו שתארתי קודם.
הערות
כדי שניתן יהיה ליישר את המלל לימין, יש להגדיר שימוש ב-Rich Text בתוכנות המתאימות. פרטים בעמודים על TextEdit ו-Mail.
השיטה פועלת בתוכנות Cocoa סטנדרטיות המבוססות על Unidode כמו TextEdit, Mail, Keynote ואחרות. היא לא פועלת בתוכנות Clasic או Carbon הפועלות לפי תקני ASCII ו-MacRoman.
דיון
מעניין אם ניתן לבנות אפלסקריפט שישנה אוטומטית את הגדרות מקש ה־Return ב־Key Xing לפי יישור הפסקה ב־TextEdit או ב־Mail? ניר, אולי יעניין אותך לבדוק את זה?
עד כמה שידוע לי, התמיכה של אפלסקריפט ביוניקוד בעייתית מאד, ואני לא יודע אם ניתן להכניס את סימן הכיווניות באמצעות אפלסקריפט. למשל אתה לא יכול לקרוא שם קובץ מהדיסק בעברית (יוניקוד) ולהכניס את המלל הזה לתוך מכתב חדש במייל, כי בדרך המלל מומר לאסקי והופך לגיבריש. אתה יכול לראות דוגמא בMailtoScript/Code. אני גם לא בטוח שאפשר לקבל את הכיווניות של פסקה מתוך Mail דרך אפלסקריפט. מה רע בפתרון שהצעת כבר: בלי option לפסקה חדשה עם כיוון ימני ועם option לפסקה חדשה עם כיוון שמאלי. הרי אם היה כפתור לבחירת כיווניות, היית משתמש בו באותה צורה. --ניר
+ שים לב, אני לא מציע להוסיף את התו ע״י אפלסקריפט אלא לשנות את ההגדרות של Key Xing בהתאם ליישור הטקסט שפעיל באותו רגע בתוכנה שבה עובדים. אם היישור לשמאל, לחיצה על Return תעבוד כרגיל, לעומת זאת אם היישור לימין, לחיצה על Return תוסיף RLE. היתרון: שקיפות למשתמש שלא צריך לבצע שום התאמות מצידו (ממש כאילו שהתוכנה תומכת בדו־כיווניות). פתרון כזה, גם אם הוא בעצם האק, יכול כבר להחשב כתמיכה חצי־סבירה בעברית --OBOS4ALL
חבל על הזמן. אפילו אם אפשר להגיע למשהו שיעבוד בצורה כלשהיא, עדיין פתרון של תווים בלתי נראים הוא לא מוצלח. קשה למחוק אותם ולא ברור אף פעם אם התו נמצא או לא. בנוסף, לא ברור לי כיצד תחליט על הכיווניות הנכונה. מה תעשה למשל עם ישור מרכזי או מלא? שליטה בכיווניות צריכה להיות ללא קשר לישור, כלומר לא משהו אוטומטי. --ניר
מה שכן אפשר לעשות, ואולי זה יהיה הכי קל, הוא לכתוב Service שיודע לקבל מלל ולשנות לו את הכיווניות. למשל "ימין לשמאל" יבדוק אם יש סימן כיווניות בהתחלת פסקאות, ואם אין, הוא יוסיף את הסימן. אם יש סימן כיווניות שמאל לימין, הוא יחליף אותו בימין לשמאל. קוד של כמה שורות - מעבר לקוד הבסיסי שנדרש לכל Service שגם זה לא משהו יותר מידי ארוך או מסובך, ויש דוגמאות לזה באינטרנט. אני מנחש שמתכנת קוקה מנוסה יכול לעשות את זה ביום יומיים עבודה. לי בטח זה יקח שבוע כי אף פעם לא כתבתי Service. מבחינת המשתמש זה יהיה סיפור של לבחור מלל ולהשתמש בקיצור מקשים אחד כדי לכוון אותו לימין, וקיצור מקשים אחר כדי לכוון אותו לשמאל. כמעט כמו תמיכה עברית מלאה. היתרון של פתרון כזה, הוא שלא אכפת לך שהסימן הוא בלתי נראה, כי השירות דואג לכך שיהיה הסימן הנכון כאתה משתמש בפקודת כיווניות.
מעניין עם מיץ או אייל רדלר ירצו לכתוב משהו כזה. אתה מוזמן לעשות לפתרון זה נפשות בפורומים - לי כבר קשה לכתוב עכשיו אחרי יום עבודה ארוך מאד.
תרמו לדף זה: OBOS4ALL, ניר סופר