התאמת האפליקציה לשוק המקומי (לוקליזציה)

מושגים והטמעה ב-Jetpack פיתוח נייטיב

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

בדף הזה מתוארות כמה שיטות מומלצות ללוקליזציה של אפליקציות ל-Android.

צריך ידע מעשי ב-Kotlin או בשפת התכנות Java, והיכרות עם טעינת משאבים ב-Android, הצהרה על רכיבי ממשק משתמש ב-XML, שיקולי פיתוח כמו מחזור החיים של פעילות ועקרונות כלליים של בינלאומיות ולוקליזציה.

מומלץ להשתמש במסגרת משאבי Android כדי להפריד ככל האפשר בין ההיבטים המותאמים לשוק המקומי של האפליקציה לבין תכונות האפליקציה.

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

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

שימוש במשאבים ללוקליזציה

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

יצירת משאבים שמוגדרים כברירת מחדל

מזינים את הטקסט שמוגדר כברירת מחדל באפליקציה ב-res/values/strings.xml. למחרוזות האלה, צריך להשתמש בשפת ברירת המחדל – השפה שרוב המשתמשים באפליקציה צפויים לדבר.

ערכת המשאבים שמוגדרת כברירת מחדל כוללת גם פריסות ומשאבים מסוג drawable שמוגדרים כברירת מחדל, ויכולה לכלול סוגים אחרים של משאבים, כמו אנימציות. המשאבים האלה נמצאים בספריות הבאות:

  • res/drawable/: ספרייה נדרשת שמכילה לפחות קובץ גרפי אחד, בשביל הסמל של האפליקציה ב-Google Play
  • res/layout/: ספריית חובה שמכילה קובץ XML שמגדיר את פריסת ברירת המחדל
  • res/anim/: חובה אם יש לכם תיקיות res/anim-<qualifiers>
  • res/xml/: חובה אם יש לכם תיקיות res/xml-<qualifiers>
  • res/raw/: חובה אם יש לכם תיקיות res/raw-<qualifiers>

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

טיפים ללוקליזציה

כדאי לפעול לפי הטיפים הבאים כשמתאימים את האפליקציה לשוק המקומי.

עיצוב פריסה גמישה

אם אתם צריכים לשנות את הפריסה כדי להתאים לשפה מסוימת, אתם יכולים ליצור פריסה חלופית לשפה הזו, כמו res/layout-de/main.xml לפריסה בגרמנית. עם זאת, פעולה כזו עלולה להקשות על התחזוקה של האפליקציה. עדיף ליצור פריסה אחת גמישה יותר.

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

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

שימוש באובייקט ההקשר של Android לחיפוש ידני של לוקאל

אפשר לחפש את הלוקאל באמצעות האובייקט Context שזמין ב-Android, כמו בדוגמה הבאה:

Kotlin

val primaryLocale: Locale = context.resources.configuration.locales[0]
val locale: String = primaryLocale.displayName

Java

Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0);
String locale = primaryLocale.getDisplayName();