Avoid Using Culture-Specific Configuration Data
ברגע שאתם כותבים תוכנית שיתכן ושוק היעד שלה (בהווה או בעתיד) ימצא גם אל
מחוץ מדינתנו הקטנה, פרט קטן וחשוב מאוד הוא טיפול בהבדלים בין Culture'ים
שונים.
גם במידה ואתם מחליטים שכל ממשק התוכנית יכתב באנגלית, ללא כל אזכור לשפה המקומית - עדיין אפשר ליפול.
המקום הכי רגיש להבדלים ב Culture הוא לא אחר מאשר קבצי הקונפיגורציה.
נניח והתוכנית שלכם משתמשת בכל מיני פרמטרים שנשמרים בקבצי קונפיגורציה חיצוניים (XML'ים למשל).
ברגע
שהכנסתם לתוכם מידע ששונה מה מספר שלם - אתם בסכנה. הכי ברורים הם פורמטי
שמירת התאריכים/זמנים/סימנים כספיים, אבל בפועל הבעיה רחבה הרבה יותר.
לדוגמה,
השימוש ב-double (או כל טיפוס שמחזיק מספר עשרוני אחר) בתוך קונפיגורציות
מוביל רק לצרות. מה שקורה זה שתחת culture'ים מסויימים (למשל, ברזיל)
הסימן העשרוני הוא פסיק, במקום נקודה.
ועכשיו, ברגע שהתוכנית שלכם תנסה לקרוא את אותו מספר עשרוני, היא תכשל בקול תרועה וששון.
לכן,
במידה ואינכם מעוניינים להתמודד בצורה מלאה והיקפית מול Culture'ים שונים
(עבודה לא פשוטה בכלל), הדרך הכי טובה להמנע מבעיות היא לא לשמור נתונים
בצורה שכוללת תווים שאינם מספרים "טבעיים". בדרך כלל אפשר למצוא פתרון
ולתרגם כל ערך למקבילה המספרית שלו. לעיתים זה יכול לגרום לפגיעה בקריאות
של הנתונים, אבל זה כנראה מחיר שכדאי לשלם, במיוחד כשהאלטרנטיבה היא לגלות
באתר לקוח שהתוכנית שלכם קורסת "בלי סיבה", ועכשיו אתם צריכים להעביר ימים
ולילות עד שתבינו שהכל בגלל פסיק ונקודה באיזה קובץ XML נידח... לא כיף.