Quantcast
Channel: מוצר | גיקטיים
Viewing all articles
Browse latest Browse all 118

עובר כל גבול: על שפות, מדינות והמוצר שלך ביניהן

$
0
0
world shutterstock

shutterstock flags

הפוסט נכתב על ידי נועם אורן, סמנכ"ל מחקר ופיתוח של Payoneer, אחראי למחלקות פיתוח, DBA, IT, QA ואינטגרציה של לקוחות.

מה כדאי לעשות מראש לטובת תמיכה עתידית ביכולת רב לשונית (Multi Lingual) ובינלאומית? ואפילו אם יש לך כבר מוצר עובד, באנגלית כמובן, איך מתאימים את המוצר לפעול בכל מדינה בעולם? איך מתכננים מערכת תוכנה שתתאים לכולם, כ-ו-ל-ם, בכל מקום בעולם?

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

1. מוכנים לכל שפה

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

כל הודעת שגיאה תתבסס על "מזהה הודעה" (בהודעת שגיאה – ErrorID), שימופה (ע"י טבלה או בקוד) אל "תאור ללוג" ו"מזהה משאב" – כך ניתן להדפיס ללוג הפנימי באנגלית, ואל התצוגה בכל שפה. השפה עצמה תיבחר על ידי המשתמש או במנגנון זיהוי אוטומטי (Auto language detection). טיפ קטן – לבחירה בין מעט שפות אפשר להשתמש בסמלים של דגלי מדינות, אבל במקרה של למעלה מ-10 שפות נוח יותר למשתמש לבחור מתפריט (Drop down). דגלי מדינות גם יוצרים אתגרים לא נוחים – דגל אמריקאי גאה, לבחירת אנגלית, לא בהכרח ינשא חן בעיני אוסטרלים. ואיזה דגל מדינה מתאים בכלל לבחירה בערבית? ואם הזכרנו ערבית – ממשק המשתמש צריך לתמוך ב"משמאל לימין" וב"מימין לשמאל", ולכך תורת מימוש בפני עצמה. ועוד טיפ: ממשק המשתמש צריך להיות "מרווח", כלומר – לא צפוף. גרמנית, למשל, נוטה למילים ארוכות שמכלות במהירות שטחי מסך קטנים מדי.

2. לזכור את השפה, וגם את המיילים

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

3. השקעתי, בניתי, אבל מאיפה אביא מתורגמן למנדרינית?

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

4. דורשים יחס מיוחד

שדות מסוימים דורשים תשומת לב מיוחדת לצורך "לוקליזציה". תאריך נכתב בישראל כ-"שנה/חודש/יום" ובארה"ב כ-"שנה/יום/חודש". לכן תשתית ממשק המשתמש צריכה להיות גמישה לתצוגת התאריך, לפי שפה, ובעיקר לאיסוף תאריך מהמשתמש – או שלוש שדות נפרדים (ליום, חודש, שנה) או בחירה מלוח שנה (Date Picker).

המערכת עוסקת בכסף? הצגת המטבע היא שאלה בפני עצמה. USD 100 או 100$ או- $100 – להציג את המטבע באותיות או להציג סימן (יש מטבעות שמקובל לסמן מימין למספר ויש שמשמאל. יש מטבעות עם סימן מוכר, ויש מטבעות שהסימן שמייצג אותם פחות בשימוש). ישנן מדינות שבהן מקובל השימוש בפסיק להפרדת סכומים (20,24 ולא 20.24). כן, כן, תת-מערכת קטנה להצגת סכומים וסימנם.

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

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

5. דמיינו שאין מדינות… אני תוהה אם תוכלו…

נכנסים עמוק יותר לענין ה"מדינה". כמובן – טבלה תכיל את רשימת המדינות הנתמכות. לכל הפחות, תסומן כל מדינה כ"פתוחה" או "סגורה" לשימוש (Enable/Disable) כדי לשלוט בקלות על הוספה והסרה של מדינות. אבל אם מתקדמים עמוק יותר חייבים לבחור רשימת מדינות לפי "הקשר". למשל, בכל אתר קניות, מבקשים "מדינת חשבון" (Billing Country)  ו"מדינת משלוח" (Shipping Country). וכמה פעמים ביקרתם באתר שלא תומך בישראל למשלוח אבל שמח לקבל את ישראל בכתובת לחיוב? במילים אחרות: רשימת המדינות נגזרת מ"סוג המדינה" (רשימת "מדינות חשבון" ורשימת "מדינות משלוח"). פשוט וקל – לא ניגשים ישירות לטבלת המדינות, אלא עוברים דרך שכבת הפרדה של "הבא רשימת מדינות לפי סוג מדינה".

6. כן, נכבוש את העולם

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

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

קרדיט תמונה: world flags via shutterstock


Viewing all articles
Browse latest Browse all 118