התאמה של מערכת מחשב לריבוי לשונות היא בעיה קשה. כשמדובר בעברית, הבעיה קשה אף יותר, משום שעברית נכתבת מימין לשמאל. בהרצאה זו נסקור את הבעיות השונות הקיימות בעברית ואת פתרונן כפי שהוא מיושם במערכות גנו/לינוקס מודרניות.
באופן כללי ניתן לומר כי במערכות גנו/לינוקס מודרניות השימוש בעברית הוא ברובו שקוף למשתמש הקצה, אך לעתים צצות בעיות שונות.
בהרצאה זו אתייחס במיוחד לשלוש הנקודות הראשונות, ואספק הסברים המתאימים למערכות גנו/לינוקס מודרניות מסוג רד-האט או מנדרייק.
ראשית, ראוי לציין שברוב מערכות הגנו/לינוקס המודרניות לא אמורה להיות בעיה מיוחדת עם קריאת עברית, במיוחד לא באינטרנט (עם דפדפן מתאים).
לשם הבנת הבעיות הכרוכות בקריאת עברית, נסטה מעט מהדיון ונבחן כיצד המחשב "מבין" את האותיות שאנו קוראים.
מחשבים לא עובדים עם תווים. מחשבים עובדים עם אחדים ואפסים. כדי שנוכל להעביר משהו כמו האות א' בין שתי תכניות, צריכים להסכים איך לייצג אותה באחדים ואפסים. ייצוג כזה נקרא קידוד. ישנם מספר תקנים לקודד את הייצוג של תווים עבריים. העיקריים שבהם:
צריך להשתמש בגופן עם קידוד מתאים לטקסט שבו רוצים לצפות. באופן כללי חלק
גדול מהטקסטים שמגיעים מבחוץ (רוב דפי ה- WEB והודעות הדואר, הודעות ICQ,
וכו') הם בקידוד utf-8 הישן, אולם מערכות ה- desktop המודרניות KDE3 ו- GNOME2 הן מבוססות יוניקוד, וכך גם הפצות מודרניות.
תוכנת iconv מאפשרת המרת טקסט בין קידודים שונים.
ברוב מערכות הגנו/לינוקס (פרט לאלה שהותקנו במסיבת ההתקנה) אין גופנים יפים של עברית ויש להתקינם בנפרד. ניתן להשיג גופנים מהמקורות הבאים:
לא מזמן נוסף אוסף גופנים חדש בשם קולמוס, אשר אותם ניתן להוריד מ: http://culmus.sf.net. האוסף הזה כולל כיום (גרסה 0.90) את הגופנים פרנק-רוהל, דוד, אהרוני, וכן מספר גופנים חדשים. החבילה מגיעה בשתי צורות: חבילת tar, וחבילת rpm. חבילת ה-rpm כמעט זהה בהרכבה לחבילת ה-tar, אולם היא שמה כבר את הקבצים במקום ומפעילה פרוצדורת התקנה פשוטה. פרוצדורה זו תעבוד במערכות רד-האט ומנדרייק.
אם יש לכם מערכת אחרת: תוכן קובץ ה-tar הוא קובצי גופנים וכן קובץ fonts.dir מתאים. לכן תכנה יכול לשמש כתיקיית גופנים.
אוסף אחד של גופני TrueType אפשר היה למצוא באתר של מיקרוסופט. הם עדיין
זמינים ב:http://corefonts.sf.net.
(כולל הוראות התקנה מועילות: בגלל מגבלות רישיון הגופנים הללו זמינים
בקובצי exe. ונדרשת התכנית cabextract כדי לקרוא אותם). לחלופין, אפשר
לקחת אותם ממחיצת החלונות במחשב. תהליך זה הוא מעט מורכב. משתמשי מנדרייק
יכולים להיעזר באשף FontDrake לביצוע אוטומטי של תהליך זה.
הגופנים Arial, Times New Roman, Courier New, Tahoma, Lucida Console ו-Lucida Sans הם גופנים אשר מקודדים בקידוד תקין. רוב שאר הגופנים (מרים, דוד, פרנק-רוהל, אהרוני, והגופנים השונים מבית גוטמן) מקודדים בדרך בעייתית, ורוב הסיכויים שלא תצליחו להשתמש בהם לעברית.
צירוף אותיות שעומד לחזור הרבה בדקות הקרובות הוא "Xkb". זהו שמה של תוספת לפרוטוקול X (סביבת החלונאות במערכות יוניקס) שמאפשרת הגדרות מקלדת מאוד גמישות. כדי להשתמש בצורה נורמלית ב-Xkb יוצרים (בד"כ בזמן האתחול של X) תיאור של לוח המקשים וטוענים אותו לשרת, וכעת אפשר להשתמש בלוח המקשים הנ"ל.
כדי להפעיל מקלדת עברית, יש להפעיל את הפקודה הבאה בזמן אתחול ה- X:
setxkbmap -option grp:switch,grp:shift_toggle,grp_led:scroll il
זוהי פקודה אשר טוענת מקלדת ישראלית ("il") עם האפשרויות הבאות:
בגירסאות מסוימות של X יש להשתמש בפקודה:
setxkbmap -option grp:switch,grp:shift_toggle,grp_led:scroll us,il
כדי לשמור את הגדרות המקלדת שלכם ניתן לערוך את קובץ ההגדרות של ה- X הקרוי בשם etc/X11/XF86Config-4/ או etc/X11/XF86Config/ (זהירות! יש לגבות את הקובץ לפני ביצוע שינויים). האפשרות העדיפה היא להשתמש ב- setxkbmap. לפחות במנדרייק וברד-האט ברוב הגרסאות העדכניות כל מה שצריך לעשות הוא ליצור קובץ etc/X11/Xkbmap/ או HOME/.Xkbmap$ שמכיל פרמטרים לפקודה setxkbmap. לדוגמה, עבור מערכת Red Hat 9, תוכן הקובץ הנ"ל יכול להיות:
-option grp:shift_toggle,grp:switch,grp_led:scroll us,il
בסביבות מסוימות ההגדרות הללו לא יעזרו: גם לאחר שהגדרנו את המקלדת כיאות, עדיין אי-אפשר להקליד עברית. נוכל לראות שהיישומים מקבלים תווים עבריים ע"י שימוש בתכנית xev. מה קרה כאן? לשם כך נצטרך לסטות קצת, ולהסביר את נושא ה-locales.
תכניות צריכות להניח כל מיני הנחות עלינו: מהי השפה (או השפות) שבהן אנו מצפים לקרוא את מנשק המשתמש? באיזה קידוד אנחנו בד"כ משתמשים? באיזה מטבע? באיזה גודל נייר? (A4 אירופי או letter אמריקאי)? ועוד. במערכת לינוקס הדרך הטבעית להעביר מידע כזה בצורה גמישה היא דרך משתני סביבה.
bash$ locale
LANG=he_IL
LC_CTYPE="he_IL"
LC_NUMERIC="he_IL"
LC_TIME="he_IL"
LC_COLLATE="he_IL"
LC_MONETARY="he_IL"
LC_MESSAGES="he_IL"
LC_PAPER="he_IL"
LC_NAME="he_IL"
LC_ADDRESS="he_IL"
LC_TELEPHONE="he_IL"
LC_MEASUREMENT="he_IL"
LC_IDENTIFICATION="he_IL"
LC_ALL=
לפי הפלט הזה, המשתנה LANG מוגדר אצלי בצורה מפורשת, לערך
"he_IL", כלומר עברית (he) בישראל (il). לפעמים מופיעה שם רק השפה
("he"), ולפעמים מוסיפים גם את סט התווים ("he_IL.utf-8" או
"he_IL.UTF-8"). ההגדרות הללו אומרות לתכניות איפה לחפש את קובצי
ההגדרות השל ה"שפה" הזו. לפי משתני הסביבה הללו המערכת מחפשת קובצי
הגדרות. במנדרייק הם מותקנים מהחבילות locales-XX כאשר XX הוא
שם השפה בשתי אותיות (locales-he עבור עברית). ברד-האט הם כולם מותקנים
בד"כ.
המשתנה LANG קובע את ברירת המחדל. אפשר לשנות חלקים של "השפה" ע"י שינוי של המשתנים האחרים. לבסוף, אם יש ערך ב-LC_ALL הוא יבוא במקום כל הערכים האחרים. החלקים החשובים:
bash$ env LC_MESSAGES=en wget http://www.haifux.org/newcomers/timetable.html
Resolving www.haifux.org... done.
Connecting to www.haifux.org[132.69.253.254]:80... connected.
HTTP request sent, awaiting response... 200 OK
h$ env LC_MESSAGES=he_IL wget http://www.haifux.org/newcomers/timetable.html
Resolving www.haifux.org... <== החלצהב עצוב
Connecting to www.haifux.org[132.69.253.254]:80... connected.
...הבושת תלבקל ןיתממ ,החלשנ HTTP תיינפ 200 OK
bash$ env LC_TIME=en date
Thu Oct 16 13:46:07 IST 2003
bash$ env LC_TIME=he_IL date
ה' אוק 16 13:46:36 IST 2003
מכיוון שדי סביר שהמשתמשים או תכנות ההתקנה ירצו לשנות את הערכים של
משתנים אילו, יצרו עבורם קובץ הגדרות מיוחד:
/etc/sysconfig/i18n , או $HOME/.i18n בו ניתן לקבוע את הגדרות ה- locale.
בהגדרות של כל locale רשום מהו סט התווים שלו. לדוגמה, עבור he_IL, זהו utf-8 (למעשה שמו המלא הוא he_IL.utf-8). חלק מהתכנות (הישנות יותר) מסכימות לעבוד אך ורק בקידוד המוזכר ב- LC_CTYPE ואינן מוכנות לקבל תווים שאינם מתאימים לקידוד זה. עבור תכנות אלה, אם סט התווים המוגדר אינו מותאם לתצורת המקלדת, לא יהיה ניתן לכתוב בתכנית. במידה ונתקלים בבעיה כזו ניתן לבדוק אם המקלדת אכן שולחת תווים, באמצעות xev.
תכנות כגון מוזילה או המבוססות על המנועים qt ו- GTK2 (כמו KDE ו- GNOME2) תומכות בריבוי תווים ואינן דורשות LC_CTYPE. לעומתן, עבור תכנות ישנות יותר יש לדאוג לקביעת ה- LC_CTYPE. לכן, אי אפשר בתכנות אלה לעבוד בעברית ורוסית (או עברית וערבית) בו זמנית.
תכנות הבנויות על ספריית qt (הספרייה של KDE) מתייחסות למשתנה LANG בלבד ומתעלמות מהמשתנה LC_ALL ושאר משתני ה- locale. יש לשים לב לכך אם משתמשים בתכנות כאלה, כמו למשל licq.
ראשית, מילת הבהרה: מה זו "עברית הפוכה".
צריך לזכור שהטקסט במקור אינו "הפוך", אלא פשוט מוצג בכיוון של האנגלית: במילה "שלום" קודם מופיע ה-ש', אחריו ה-ל', בהמשך ה-ו' ורק בסיום ה-ם' הסופית. זהו הסדר שבו האותיות הללו מופיעות בקובץ הזה. הדפדפן דואג להפוך אותן קצת לפני שהוא מציג אותן על המסך, או מדפיס אותן למדפסת. דפדפנים שלא יודעים לבצע את ההיפוך הזה כמו שצריך, לא יוכלו להציג עברית כמו שצריך.
רוב התכנות במערכת לינוקס מודרנית תומכות בדו-כיווניות. בכלל זה הדפדפנים מוזילה, קונקרור ואופרה, תכנות מבוססות qt3 (ביניהן KDE3) ותכנות מבוססות GTK2 (בהן GNOME2).
בחלק מתכנות KDE, אין אפשרות לקבוע את כיוון הפסקה והוא נקבע לפי התו הראשון בפסקה שיש לו כיוון מוגדר (אותיות או מספרים).
תוכנת bidiv מאפשרת להפוך טקסט עברי בשרות הפקודה ונועדה לשמש כחלק מ- pipe. למשל, אם אנו במסוף שאינו תומך בדו-כיווניות נוכל לבצע את הפקודה הבאה כדי לראות את התאריך:
bash$ env LC_ALL=he_IL.utf-8 date | bidiv
IST 2003 17:56:52 16 קוא 'ה
ניתן להוריד את bidiv מאתר ivrix - אתר לתכנות חופשיות הקשורות בעברית.
תכנה זו מאפשרת לכפות על תכנות X להציג את הטקסט למסך בצורה הפוכה. התכנה מתאימה במיוחד לעבודה עם תכנות מבוססות GTK1 או qt2, ומסייעת להוסיף תמיכה חלקית בדו-כיווניות לתכנות ישנות. לפרטים נוספים ניתן לבקר באתר התכנה.
גרסאות עדכניות של OpenOffice, kword, ו- Abiword תומכות בעברית במידה
סבירה. בכל התכנות לעיל מומלץ להוריד את הגרסאות האחרונות מהאתרים הרשמיים
ולא להסתפק בגירסא המגיעה עם ההפצה. הגרסאות המומלצות הן (לפחות):
OpenOffice 1.1 ו- AbiWord 1.9, כמו גם kword של KDE3.
בנוסף למעבדי תמלילים אלה, קיים LyX המתבסס על מנוע LaTeX בעברית ליצירת מסמכים. ייחודו של LyX (או בעצם של LaTeX) שהוא אינו תוכנת עיבוד תמלילים, אלא מערכת מתקדמת לסידור דפוס, המגיעה לפלט טוב בהרבה משל תכנות עיבוד תמלילים, בפחות מאמץ. לפרטים ניתן לבקר באתר LyX.
בשעה טובה ומוצלחת נחנך בדצמבר 2002 בודק האיות העברי החופשי הראשון, hspell. רשימות המילים עדיין אינן מלאות, אך hspell הנו כבר בודק איות ברמה סבירה ונתמך ע"י מגוון רחב של תכנות, בהן OpenOffice, KDE ואף LyX. כמו כן, hspell שימש לבדיקת האיות בהרצאה זו ממש.
hspell עובדת על כתיב עברי לא-מנוקד ואוכפת באדיקות את החלטות האקדמיה ללשון עברית. לפרטים נוספים על התכנה ולהורדה, ניתן לבקר באתר hspell.
למידע נוסף על עברית במערכת גנו/לינוקס ניתן לבקר באתרים הבאים:
משתמשי רד האט יכולים להוריד חבילות הקשורות בעברית ולהתקינן מדף רד-האט בעבריx. כל החבילות האלה נמצאות בדיסק התוספות שהותקן ביום הלינוקס של מועדון הלינוקס החיפאי.