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

בכלי Translations Editor (עורך התרגומים) מוצגת תצוגה מאוחדת שניתנת לעריכה של כל משאבי המחרוזות שמוגדרים כברירת מחדל ושל אלה שתורגמו.

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

איור 1. הכלי לעריכת תרגומים שבו מוצג טקסט באפליקציה לפני התרגום

משאבי מחרוזות

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

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

פתיחת הכלי לעריכת תרגומים

אפשר לגשת לכלי לעריכת תרגומים מהמקומות הבאים ב-Android Studio.

פתיחה מהתצוגה של Android

  1. בחלונית Project > Android (פרויקט > Android) בצד ימין, בוחרים באפשרות ModuleName > res > values (משאבים > ערכים).
  2. לוחצים לחיצה ימנית על הקובץ strings.xml ובוחרים באפשרות Open Translations Editor (פתיחת עורך התרגומים).

    בכלי לעריכת תרגומים מוצגים זוגות של מפתח וערך מתוך הקובץ strings.xml.

    הערה: אחרי שתתרגמו קובצי strings.xml, בפרויקט יהיו כמה תיקיות values תואמות עם סיומות שמציינות את השפה, למשל values-es לספרדית. קובץ ברירת המחדל strings.xml תמיד נמצא בתיקייה values (ללא סיומת).

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

פתיחה מתוך הקובץ strings.xml

אפשר לגשת אל כלי העריכה של התרגומים מתוך כל אחד מהקבצים שלכם ב-strings.xml.

  1. בחלונית Project > Android (פרויקט > Android) בצד ימין, בוחרים באפשרות ModuleName > res > values (ערכים).
  2. לוחצים לחיצה כפולה על strings.xml כדי לפתוח אותו לעריכה.
  3. ב-strings.xml, לוחצים על הקישור Open editor (פתיחת הכלי לעריכה) בפינה השמאלית העליונה.

הגדרת שורות שלא ניתן לתרגם

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

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

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

הוספה ומחיקה של שפות

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

כדי להוסיף שפה:

  1. בכלי העריכה של התרגומים, לוחצים על סמל הגלובוס .
  2. מהרשימה הנפתחת, בוחרים את השפה שרוצים להוסיף. השפה החדשה מופיעה בכלי העריכה של התרגומים, ותיקייה values-* עם קובץ strings.xml נוספת לפרויקט. לדוגמה, ‫values-es לספרדית.

כדי למחוק שפה:

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

  1. בחלונית Project > Android (פרויקט > Android) בצד ימין, בוחרים באפשרות ModuleName > res.
  2. לוחצים לחיצה ימנית על התיקייה values-* של השפה שרוצים למחוק. לדוגמה, values-hi עבור הינדי.
  3. מהרשימה, בוחרים באפשרות מחיקה כדי למחוק את התיקייה ואת הקובץ strings.xml שלה.

עריכה, הוספה ומחיקה של טקסט

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

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

תצוגת רשימה

כדי לערוך או להוסיף טקסט:

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

כדי למחוק טקסט:

  1. לוחצים לחיצה כפולה על התא שרוצים למחוק.
  2. בתצוגת הרשימה, בוחרים את הטקסט ולוחצים על מחיקה.
  3. מקישים על Tab או מוציאים את הסמן מהשדה.

שדה תרגום

כדי לערוך או להוסיף טקסט:

  1. בתצוגת הרשימה, לוחצים לחיצה אחת על התא שבו רוצים לערוך או להוסיף טקסט.
  2. בשדה תרגום, מעתיקים ומדביקים מהמקלדת, או, אם יש לכם מקלדת שתומכת בסימנים דיאקריטיים, מקלידים ישירות בשדה תרגום.
  3. מקישים על Tab או מוציאים את הסמן מהשדה.

כדי למחוק טקסט:

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

הוספה ומחיקה של מפתחות

בעמודה Key בכלי Translations Editor מפורטים המזהים הייחודיים של כל פריט נתונים בקובצי strings.xml. אפשר להוסיף ולמחוק מפתחות דרך הכלי לעריכת תרגומים. כשמוחקים מפתח, כלי העריכה של התרגומים מוחק אותו ואת כל התרגומים שמשויכים אליו. עורך התרגומים משתמש בשינוי מבנה הקוד Safe Delete כדי למחוק מפתח, כך שתוכלו לדעת אם הטקסט של המפתח נמצא בשימוש במקום אחר, ולבצע את ההתאמות הנדרשות לפני שאתם מוחקים את המפתח. השינוי המבני של Safe Delete מוודא שהקוד עדיין עובר קומפילציה אחרי שמוחקים את המפתח.

כדי להוסיף מפתח:

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

    איור 3. הוספת מפתח

כדי למחוק מפתח:

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

    איור 4. תיבת דו-שיח למחיקה

    אם אין הפניות (שימושים) למפתח שנמחק, או אם אפשר לצמצם את כל ההפניות בבטחה, המפתח נמחק. אחרת, ב'כלי העריכה של התרגומים' מוצגת תיבת הדו-שיח Usages Detected (שימושים שזוהו) עם מידע על הבעיות שזוהו.

    איור 5. תיבת דו-שיח למחיקה

  4. בוחרים באפשרות הצגת נתוני השימוש כדי לבדוק מה יימחק. בתיבת הדו-שיח Find Safe Delete Conflicts מוצגים כל השימושים שלא בטוח למחוק, כדי שתוכלו לערוך את הקוד המתאים.

    איור 6. שימושים לא בטוחים

  5. לוחצים לחיצה ימנית על שימוש כדי להציג את תפריט ההקשר ובוחרים באפשרות Jump to Source כדי לבצע את השינויים הנדרשים.
  6. בחלונית Find Safe Delete Conflicts (איתור התנגשויות של מחיקה בטוחה), בוחרים באפשרות Rerun Safe Delete (הפעלה מחדש של מחיקה בטוחה) כדי לוודא שאין שימושים אחרים שצריך לטפל בהם.
  7. אחרי שמנקים את השימושים, לוחצים על Do Refactor כדי למחוק את המפתח.

תיקון שגיאות

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

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

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

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

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

  • באיור 7 רואים שבשורה app_name מסומנת האפשרות Untranslatable, אבל יש תרגום לספרדית. כדי לתקן את השגיאה, צריך למחוק את התרגום לספרדית.
  • באיור 7 אפשר לראות שבשורה next_page חסר תרגום לצרפתית. משתמשים במקלדת כדי להעתיק את Page Suivante לתא כדי לתקן את השגיאה. פעולת העתקה והדבקה מהמקלדת מעתיקה את הטקסט עם סימני הניקוד לתא.

ניהול ובדיקה של טקסט שניתן לתרגום

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

תמיכה בשפות שנקראות מימין לשמאל

‫Jetpack Compose מטפל בפריסות מימין לשמאל (RTL) באופן מובנה. ה-APIs והכלים לשינוי פריסה מבוססים על מושגים של כיוונים כמו start ו-end ולא על כיוונים מוחלטים כמו left ו-right. כששפת המערכת משתנה לשפה שכותבים בה מימין לשמאל, Compose משקף אוטומטית את הפריסות האלה.

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

כדי להפעיל תמיכה ב-RTL:

  1. פותחים את קובץ ה-AndroidManifest.xml.
  2. מוסיפים את המאפיין android:supportsRtl="true" לרכיב <application>:
<manifest ... >
    <application
        ...
        android:supportsRtl="true">
    </application>
</manifest>

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

הגדרה ידנית של כיוון הטקסט

ב-Jetpack Compose, אי אפשר להשתמש בחלון Properties (מאפיינים) כדי לכפות פריסה או כיווני טקסט. ב-Compose, שיקוף מימין לשמאל מטופל באופן אוטומטי על סמך הלוקאל של המערכת.

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

הערכים הנתמכים כוללים:

מידע נוסף על עיצוב טקסט והגדרת כיווני טקסט ידניים ב-Compose זמין במאמר עיצוב טקסט.

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

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

בקטע Strings במאמר Resources in Compose מוסבר איך להציג טקסטים שמותאמים לשוק המקומי, איך לטפל בטקסטים מימין לשמאל באופן מקורי ואיך להשתמש ב-@Preview כדי לבדוק לוקאלים שונים ופסאודו-לוקאלים.

דוגמאות קוד לשם אזור

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

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

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

צפיות בתוכן