התאמת האפליקציה לשוק המקומי

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

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

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

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

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

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

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

סקירה כללית: החלפת משאבים ב-Android

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

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

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

למה משאבי ברירת מחדל חשובים

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

לדוגמה:

קוד מבוסס Kotlin של אפליקציה מתייחס רק לשתי מחרוזות, text_a ו-text_b. האפליקציה כוללת קובץ משאבים מותאם לשוק המקומי (res/values-en/strings.xml) שמגדיר את text_a ואת text_b באנגלית. האפליקציה כוללת גם קובץ משאבים שמוגדר כברירת מחדל (res/values/strings.xml) שכולל הגדרה של text_a, אבל לא של text_b.

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

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

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

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

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

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

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

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

יצירת משאבים חלופיים

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

אפליקציה יכולה לציין הרבה res/<qualifiers>/ ספריות, שלכל אחת מהן יש מסננים שונים. כדי ליצור משאב חלופי עבור לוקאל אחר, משתמשים במאפיין שמציין שפה או שילוב של שפה ואזור. השם של ספריית משאבים צריך להיות בהתאם לשיטת מתן השמות שמתוארת במאמר אספקת משאבים חלופיים, אחרת אי אפשר לקמפל את האפליקציה.

לדוגמה:

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

  1. res/values/strings.xml
    Contains English text for all the strings that the app uses, including text for a string named title.
  2. res/values-fr/strings.xml
    כולל טקסט בצרפתית לכל המחרוזות, כולל title.
  3. res/values-ja/strings.xml
    כל המחרוזות צריכות להכיל טקסט ביפנית חוץ מ title.

אם הקוד שלכם מבוסס על Kotlin ומתייחס אל R.string.title, זה מה שקורה בזמן הריצה:

  • אם המכשיר מוגדר לשפה כלשהי שאינה צרפתית, מערכת Android טוענת את title מהקובץ res/values/strings.xml.
  • אם המכשיר מוגדר לצרפתית, מערכת Android טוענת את title מהקובץ res/values-fr/strings.xml.

אם המכשיר מוגדר ליפנית, מערכת Android מחפשת את title בקובץ res/values-ja/strings.xml. אבל מכיוון שמחרוזת כזו לא נכללת בקובץ הזה, מערכת Android חוזרת לברירת המחדל וטוענת את title באנגלית מהקובץ res/values/strings.xml.

אילו משאבים מקבלים עדיפות?

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

לדוגמה:

נניח שאפליקציה כוללת קבוצת ברירת מחדל של גרפיקה ושתי קבוצות גרפיקה נוספות, שכל אחת מהן מותאמת להגדרת מכשיר שונה:

  • res/drawable/
    מכיל גרפיקה שמוגדרת כברירת מחדל.
  • res/drawable-small-land-stylus/
    מכיל גרפיקה שעברה אופטימיזציה לשימוש במכשיר שמצפה לקלט מסטיילוס, ויש לו מסך עם צפיפות פיקסלים נמוכה QVGA ובכיוון לרוחב.
  • res/drawable-ja/
    כולל גרפיקה שעברה אופטימיזציה לשימוש ביפנית.

אם האפליקציה פועלת במכשיר שמוגדר לשימוש ביפנית, מערכת Android טוענת גרפיקה מ-res/drawable-ja/, גם אם המכשיר הוא כזה שמצפה לקלט מעט, ויש לו מסך QVGA בצפיפות נמוכה במצב אופקי.

חריג: המגדירים היחידים שקודמים לשילוב של שפה ואזור בתהליך הבחירה הם קוד מדינה של רשת סלולרית (MCC) וקוד הרשת הסלולרית (MNC).

לדוגמה:

נניח שיש לכם את המצב הבא:

  • קוד האפליקציה קורא ל-R.string.text_a.
  • יש שני קובצי משאבים רלוונטיים:
    • res/values-mcc404/strings.xml, כולל text_a בשפת ברירת המחדל של האפליקציה, במקרה הזה אנגלית.
    • res/values-hi/strings.xml, שכולל text_a בהינדית.
  • האפליקציה פועלת במכשיר עם ההגדרה הבאה:
    • כרטיס ה-SIM מחובר לרשת סלולרית בהודו (MCC 404).
    • השפה מוגדרת להינדי (hi).

מערכת Android טוענת את text_a מתוך res/values-mcc404/strings.xml (באנגלית), גם אם המכשיר מוגדר להצגת הינדי. הסיבה לכך היא שבתהליך בחירת המשאבים, מערכת Android מעדיפה התאמה של קוד מדינה (MCC) על פני התאמה של שפה.

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

הפניה למשאבים בקוד

בקוד מבוסס Kotlin של האפליקציה, מתייחסים למשאבים באמצעות התחביר R.resource_type.resource_name או android.R.resource_type.resource_name. מידע נוסף זמין במאמר גישה למשאבי האפליקציה.

ניהול מחרוזות ללוקליזציה

בקטע הזה מתוארות שיטות מומלצות לניהול מחרוזות שקשורות ללוקליזציה.

העברת כל המחרוזות לקובץ strings.xml

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

לדוגמה, ב-Compose אפשר לטעון מחרוזת ככה:

// In the res/values/strings.xml file
// <string name="compose">Jetpack Compose</string>

// In your Compose code
Text(
    text = stringResource(R.string.compose)
)

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

הנחיות לגבי מחרוזות בממשק המשתמש ב-Android

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

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

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

לספק הקשר מספיק למחרוזות מוצהרות

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

לדוגמה:

<!-- The action for submitting a form. This text is on a button that can fit 30 chars -->
<string name="login_submit_button">Sign in</string>

כדאי לספק פרטים כמו:

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

סימון חלקים בהודעה שלא רוצים לתרגם

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

כדי לסמן טקסט שלא צריך לתרגם, משתמשים בתג placeholder‏ <xliff:g>. דוגמה לתג שמציין שהטקסט "%1$s" לא ישתנה במהלך התרגום, כדי שההודעה לא תישבר:

<string name="countdown">
  <xliff:g id="time" example="5 days">%1$s</xliff:g> until holiday
</string>

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

דוגמאות נוספות לתגי placeholder:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Example placeholder for a special Unicode symbol -->
<string name="star_rating">Check out our 5
    <xliff:g id="star">\u2605</xliff:g>
</string>
<!-- Example placeholder for a URL -->
<string name="app_homeurl">
    Visit us at <xliff:g
    id="application_homepage">http://my/app/home.html</xliff:g>
</string>
<!-- Example placeholder for a name -->
<string name="prod_name">
    Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g>
</string>
<!-- Example placeholder for a literal -->
<string name="promo_message">
    Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>" to get a discount.
</string>
...
</resources>

רשימת משימות להתאמה לשוק המקומי

סקירה מלאה של תהליך ההתאמה לשוק המקומי והפצת אפליקציית Android זמינה במאמר תרגום האפליקציה והתאמה שלה לשוק המקומי.

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

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

עיצוב האפליקציה כך שתפעל בכל לוקאל

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

חשוב: ודאו שהאפליקציה כוללת סט מלא של משאבי ברירת מחדל: כולל תיקיות res/drawable/ ו-res/values/ ללא שינויים נוספים בשמות התיקיות, שמכילות את כל התמונות והטקסט שהאפליקציה צריכה.

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

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

אל תיצרו יותר קובצי משאבים ומחרוזות טקסט ממה שאתם צריכים

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

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

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

כדי לעשות את זה, יוצרים קובץ קטן בשם res/values-en-rGB/strings.xml שכולל רק את המחרוזות ששונות כשהאפליקציה פועלת בבריטניה. לגבי כל שאר המחרוזות, האפליקציה חוזרת לברירות המחדל ומשתמשת במה שמוגדר ב-res/values/strings.xml.

שימוש ב-LocalConfiguration לחיפוש ידני של אזור

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

val locale = LocalConfiguration.current.locales[0]

שימוש בשירות לתרגום אפליקציות

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

שימוש ב-Gemini לתרגום מחרוזות באפליקציה

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

בדיקת אפליקציות שהותאמו לשוק מקומי

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

בדיקה במכשיר

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

כדי לשנות את הלוקאל או השפה במכשיר, משתמשים באפליקציית ההגדרות.

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

לפני שמבצעים בדיקה במכשיר, אפשר להשתמש בתצוגות מקדימות של רכיבים ב-Android Studio כדי לבדוק ממשקי משתמש שעברו לוקליזציה בלי לפרוס אותם לאמולטור. כדי לראות תצוגה מקדימה של ממשק המשתמש בשפות שונות, משתמשים בהערה @Preview (כמו @Preview(locale = "fr")). אפשר גם לבדוק פריסות מימין לשמאל (RTL) על ידי ציון לוקאל RTL כמו @Preview(locale = "ar").

בדיקה באמולטור

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

יצירה ושימוש בלוקאל מותאם אישית

לוקאל 'מותאם אישית' הוא שילוב של שפה או אזור שקובץ אימג' של המערכת של Android לא תומך בו באופן מפורש. אתם יכולים לבדוק איך האפליקציה פועלת בלוקאל מותאם אישית על ידי יצירת לוקאל מותאם אישית באמולטור. יש שתי דרכים לעשות את זה:

  • משתמשים באפליקציה Custom Locale (לוקאל מותאם אישית), שאפשר לגשת אליה מהכרטיסייה 'אפליקציות'. אחרי שיוצרים לוקאל מותאם אישית, לוחצים לחיצה ארוכה על שם הלוקאל כדי לעבור אליו.
  • עוברים ללוקאל בהתאמה אישית ממעטפת adb, כמו שמתואר בקטע הבא.

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

שינוי הלוקאל של האמולטור מ-adb shell

כדי לשנות את הלוקאל באמולטור באמצעות מעטפת adb:

  1. בוחרים את הלוקאל שרוצים לבדוק וקובעים את תג השפה שלו לפי BCP-47, למשל fr-CA לצרפתית קנדית.
  2. מפעילים אמולטור.
  3. מריצים את הפקודה הבאה בשורת הפקודה במחשב המארח:
    adb shell
    או, אם יש לכם מכשיר שמחובר למחשב, מוסיפים את האפשרות -e כדי לציין שאתם רוצים להשתמש באמולטור:
    adb -e shell
  4. בשורת הפקודה של adb (#), מריצים את הפקודה הבאה:
    setprop persist.sys.locale [BCP-47 language tag];stop;sleep 5;start
    מחליפים את הקטעים שבסוגריים בקודים המתאימים משלב 1.

    לדוגמה, כדי לבדוק בצרפתית קנדית:
    setprop persist.sys.locale fr-CA;stop;sleep 5;start

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

בדיקה של משאבי ברירת מחדל

כדי לבדוק אם אפליקציה כוללת את כל משאבי המחרוזות שהיא צריכה, מבצעים את הפעולות הבאות:

  1. מגדירים באמולטור או במכשיר שפה שהאפליקציה לא תומכת בה. לדוגמה, אם באפליקציה יש מחרוזות בצרפתית ב-res/values-fr/ אבל אין מחרוזות בספרדית ב-res/values-es/, צריך להגדיר את הלוקאל של האמולטור לספרדית. אפשר להשתמש באפליקציה Custom Locale כדי להגדיר את האמולטור ללוקאל שלא נתמך.
  2. מפעילים את האפליקציה.
  3. אם באפליקציה מוצגת הודעת שגיאה ולחצן לסגירה ידנית, יכול להיות שהיא מחפשת מחרוזת שלא זמינה. חשוב לוודא שקובץ res/values/strings.xml כולל הגדרה לכל מחרוזת שבה האפליקציה משתמשת.

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

מקורות מידע נוספים

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

מאמרי עזרה

צפייה בתוכן