הודעות שגיאה בעברית

כחלק מההתאמה של המייבא מישראבלוג ל-PHP 4, הצלחתי להתקל בהודעת השגיאה הבאה מ-PHP:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/sun/sources/wordpress/test.php on line 7

למי שלא רוצה לשבור את השיניים על הביטוי המוזר באותיות גדולות, מה שכתוב שם זה “T_פעמיים_נקודותיים”, בהמרת אותיות פשוטה לאנגלית.

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

נתחיל מזה שניתוח טקסט שמיועד להיות שפת מחשב מתבצע, בד”כ, בשני שלבים. הראשון נקרא lexical analysis, בד”כ מתבצע ע”י תוכנה בשם lex על גרסותיה, והוא מבוסס על שפות רגולריות. בשלב הזה עוברים על הקוד ומקצים ייעוד לכל קבוצת אותיות. זה מספר, זה מזהה של משתנה, זה סימן “ועוד” וכו’. בשלב השני שנקרא “parsing”, מייצרים עץ שמראה את היחסים בין המזהים שמצאנו בשלב הראשון.

אם נקרא עוד פעם את השגיאה, עכשיו אפשר להבין אותה יותר טוב. בזמן ה-parsing מצאנו מזהה מהשלב הראשון במקום שלא ציפינו למצוא אותו. שם המזהה שמצאנו הוא “T_PAAMAYIM_NEKUDOTAYIM”.

למי שלא יודע, PHP מפותח בעיקר בחברה בשם Zend, שהיא חברה ישראלית. כנראה שמה שקרה הוא שהמפתח שהיה אחראי על כתיבת הקוד ל-lex לא ידע איך להגיד “פעמיים נקודותיים” באנגלית (double colon, למי שתהה). מתוך הנחה שאף אחד ממילא לא יראה את הקוד הזה אף פעם, הוא החליט פשוט לתת שם בעברית.
אלא שההנחה שאף אחד לא יראה את הקוד היתה שגויה. חיפוש בגוגל מראה שלא מעט אנשים נתקלו בהודעות שגיאה שמכילות את שם המזהה הזה, ורובם חושבים שמדובר בשפה מזרח אסיאתית כלשהי. היה אפילו מקרה אחד שהציעו לשואל לבדוק אם יש לו וירוסים, מה שמספר לנו משהו על וירוסים, ומספר לנו אפילו יותר על בני אדם.

והמסר, ילדים, הוא זה. אם אתם לא יודעים איך אומרים משהו בשפה אחרת, תשתמשו במילון

שחר

מאת

שחר שמש

מייסד–שותף וחבר ועד בתנועה לזכויות דיגיטליות מייסד שותף בעמותת „המקור”. פעיל קוד פתוח. מפתח שפת התכנות Practical

6 תגובות בנושא “הודעות שגיאה בעברית”

  1. זו לא טעות, אלא בדיחה.

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

  2. יש עוד כמה – לדוגמא בפונקציה של המרת תאריך לתאריך עברי:
    CAL_JEWISH_ADD_GERESHAYIM
    CAL_JEWISH_ADD_ALAFIM
    CAL_JEWISH_ADD_ALAFIM_GERESH
    שהכוונה היא להוספת גרש אחרי האות “ה” ואת המילה “אלפים” וגרשיים בשנה העברית, לדוגמא:
    ג’ תשרי ה’ אלפים תשס”ז

    אגב – למי שרוצה שהפוסטים שלו ב-WP יוצגו עם תאריך עברי בפורמט הנ”ל, מוזמן להשתמש בפונקציה שכתבתי:
    http://me.sml.co.il/?p=20
    לא היה לי זמן לטרוח ולחשוב איך בונים מזה תוסף – מי שמוכן להרים את הכפפה – מוזמן.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

Bear