אינטרנציונליזציה ולוקליזציה הם אמצעים להתאמת תוכנות מחשב לשפות שונות ולהבדלים אזוריים. אינטרנציונליזציה היא תהליך העיצוב של יישום התוכנה, כך שניתן יהיה להשתמש בה במספר שפות ואזורים, מבלי לערוך בה שינויים הנדסיים. לוקליזציה היא תהליך ההתאמה של תוכנה לאזור מסוים או לשפה מסוימת, על ידי הוספת רכיבים מקומיים ותרגום טקסט. גלובליזציה היא השילוב של השניים.
היקף
נקודות המוקד באינטרנציונליזציה ובלוקליזציה כוללות את המרכיבים הבאים:
שפה
* טקסט מקודד במחשב
- אלפבית/סקריפטים; רוב המערכות החדישות משתמשות בתקן Unicode לפתרון בעיות רבות הקשורות לקידוד תווים.
- מערכות שונות של ספרות
- כיוון כתיבה מימין לשמאל (עברית, ערבית, פרסית) או משמאל לימין (גרמנית, צרפתית, אנגלית)
- איות שונה בארצות שונות בהן מדוברת אותה שפה (בריטניה וארה"ב)
- תהליך שונה של עיבוד טקסט, כגון שימוש באותיות גדולות, כללים שונים למיון טקסט ועוד
* ייצוג גרפי של טקסט (חומרים מודפסים, תמונות מקוונות המכילות טקסט)
* שפה מדוברת
* כתוביות של סרטים וסרטוני וידאו
תרבות
* תמונות וצבעים: בעיות הקשורות לבהירות ולתאימות התרבותית
* שמות ותארים
* מספרים בהקצאת הממשל (כגון מספר הביטוח הלאומי) ודרכונים
* מספרי טלפון, כתובות ומיקודי דואר
* מטבע (סמלים, מיקום סמל המטבע בטקסט)
* משקלים ומידות
* גדלי נייר
כללי כתיבה
* תאריך/שעה, כולל שימוש בלוחות שנה שונים
* אזורי זמן (UTC – זמן אוניברסלי מתואם)
* אופן כתיבת מספרים (נקודה עשרונית, מיקום התו המפריד, תווים המשמשים להפרדה)
* כל היבט אחר של המוצר/השירות הכפוף לעמידה בדרישות החקיקה
ההבדל בין אינטרנציונליזציה ללוקליזציה מעודן, אך חשוב. אינטרנציונליזציה היא תהליך ההתאמה של מוצרים לצורך שימוש פוטנציאלי בכל מקום אפשרי, בעוד שלוקליזציה פירושה הוספת תכונות מיוחדות לצורך שימוש במקום ספציפי. תהליך האינטרנציונליזציה מבוצע פעם אחת לכל מוצר, בעוד שתהליך הלוקליזציה מבוצע פעם אחת לכל שילוב של מוצר ומקום. התהליכים משלימים זה את זה, ויש לשלבם ביחד כדי להגיע למוצר שעובד באופן גלובלי.
נושאים הייחודיים לתהליך הלוקליזציה:
- תרגום לשפת היעד
- מגוון שפות וניבים בארצות מסוימות
- תמיכה מיוחדת לשפות מסוימות, כגון השפות המדוברות במזרח אסיה
- מנהגים מקומיים
- תוכן מקומי
- סמלים ותמונות
- אסתטיקה
- ערכים תרבותיים והקשר חברתי
נוהג
הנוהג כיום בלוקליזציה של יישומים הוא למקם את הטקסט במחרוזות משאבים, הנטענות בעת הפעלת התוכנית, במידת הצורך. קל יותר לתרגם מחרוזות אלו, השמורות בקובצי משאבים.
כדי שהיישום ייתמך במספר שפות, יש לתכנן אותו להפעלת קובץ המשאבים בהתאם לשפה הרלוונטית. קובצי המשאבים מתורגמים לשפות הנדרשות. שיטה זו נוטה להיות ספציפית ליישום. בנוסף יש לתמוך בקוד הנדרש לצורך ניהול האימות של תאריכי כניסה ונתונים מקומיים אחרים, בהתאם לדרישות המקומיות. מערכות פיתוח ומערכות הפעלה מודרניות כוללות ספריות מתוחכמות לצורך תמיכה בינלאומית בנתונים אלו.
קשיים
אמנם נראה כי תרגום טקסטים קיים לשפות אחרות הוא קל, אך קשה יותר לנהל את הגרסאות המקבילות של הטקסטים לכל אורך חיי המוצר. לדוגמה, כאשר משתנה מסר המוצג למשתמש, יש לשנות את כל הגרסאות המתורגמות של מסר זה.
בעיות רבות בתחום הלוקליזציה (למשל, כיוון הכתיבה ואופן מיון הטקסט) דורשות שינויים מהותיים בתוכנה, ולא רק תרגום של טקסט. במידה מסוימת, צוות הפיתוח נדרש לאדם בעל רקע טכני, המבין שפות ותרבויות זרות. בתרבויות גדולות שבהן שולטת שפה/תרבות אחת, ייתכן שיהיה קשה למצוא אדם כזה.
עלות לעומת תועלת
בסביבה המסחרית, לוקליזציה מעניקה את היתרון של גישה לשווקים רבים יותר. יש הטוענים כי ברור מאליו שצריך לבצע לוקליזציה של מוצרים לשפות רבות, וכי נדרשת מחויבות תקציבית מצד היצרן למימון העלויות הגבוהות. הייצור של מוצרים לשווקים בינלאומיים עולה יותר, אך בזירה הגלובלית, תמיכה בשוק אחד בלבד איננה אופציה.