BaClick

אנדרואיד מתעקש לדבר אנגלית - סיפור מהשטח על באג עקשן

מאיר א. · מורה, מפתח ומייסד BaClick · · 2 דק׳ קריאה

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

יש סוג של באג שגורם לך לפקפק בשפיות שלך: הקוד נראה נכון, הבדיקות עוברות, ואז במכשיר ספציפי - בדרך כלל חדש - משהו שבור בצורה שאין לה שום הסבר הגיוני. זה מה שקרה עם בורר התאריכים באפליקציית הון בקליק לאנדרואיד.

התסמין

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

למה זה קרה

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

הפתרון: לא לסמוך על המכשיר בכלל

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

למה זה משנה למפתחים ישראלים בפרט

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

שאלות נפוצות

זה קורה גם באתר, או רק באפליקציה?

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

איך מזהים אם יש לכם את אותה בעיה באפליקציה משלכם?

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


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

להמשך קריאה