
EditText הופיע בצד הלא נכון.strings.xml: בעזרת Alt+Enter ו-Extract string resource מוציאים כל טקסט ב-layout. התרגומים נלקחים מהקובץ הזה.Edit Translations. ברירת המחדל (Default Value) היא בדרך כלל אנגלית, אלא אם הציבור לא דובר אנגלית.Add locale ובוחרים Hebrew. מתווספת עמודה לתרגומים, ומתרגמים כל מחרוזת (למשל שם פרטי, שם משפחה, אישור, פרטי משתמש). נוצר קובץ strings.xml נוסף בתיקייה values-iw, כש-iw הוא קוד השפה העברית.application, מגדירים android:supportsRtl="true".right ו-left. לכל תכונה עם right (למשל layout_toRightOf, layout_alignRight) מוסיפים תכונה זהה עם end, ולכל תכונה עם left (כמו layout_marginLeft, layout_alignLeft) מוסיפים עם start. Android Studio מציע זאת בריחוף (Consider adding). משכפלים את השורה עם Ctrl+D ומחליפים את המילה.gravity: כאן ה-left נמצא בערך ולא בשם התכונה, ולכן לא מוסיפים שורה אלא מחליפים ל-start. Android Studio מציע use start instead of left.הטקסט המלא של הדקות הראשונות בהרצאה «הוספת עברית לאפליקציה» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא מאוד חשוב ומאוד נפוץ בפיתוח אפליקציות למובייל והנושא הזה נקרא לוקליזיישן, לוקליזיישן זה תמיכה בשפות. כאן אנחנו הולכים לראות איך אנחנו יכולים לבנות אפליקציה שתומכת ביותר משפה אחת אם למשתמש לדוגמה מוגדרת שפה אחרת בטלפון, שפה ספציפית נניח עברית ואנחנו רוצים שאם
זה קורה אז האפליקציה שלנו תוצג בעברית אם לדוגמה המכשיר הנייד שלה המשתמש מוגדר בערבית ואנחנו רוצים לתמוך בערבית אז אנחנו רוצים שכל האפליקציה תוצג לו בערבית בשביל להצליח לעשות את זה אנחנו צריכים לבנות את התשתית כמו שצריך ולטפל בשני דברים מרכזיים אז בסרטון הזה
אנחנו הולכים לראות מה בדיוק הדברים שאנחנו צריכים לעשות בכדי לתמוך בשפות ספציפיות שאנחנו מגדירים אז קודם כל בניתי כאן איזשהו layout שמאפשר למשתמש להכניס פרטים כאן אנחנו רואים שיש לו אפשרות להכניס שם פרטים שמשפחה ולחצן אוקיי יש לנו פה כותרת למעלה ובייסיקלי זה כל ה-UI שיש למשתמש אבל כל ה-UI הזה בנוי אך ורק באנגלית זאת אומרת אם אנחנו מריצים את האפליקציה כמובן שהוא יראה בדיוק מה שאנחנו
רואים כאן בואו רגע נריץ אותה והנה אנחנו רואים שבדיוק מה שראינו בהרצה של האפליקציה זה מה שהוא רואה אבל בגלל שהאפליקציה הזאת בעצם היא מוגדרת רק עבור אנגלית אז אם המשתמש המכשיר שלו מוגדר בשפה אחרת אז הוא לא יראה את האפליקציה בשפה שלו.
בואו נראה את זה. אם אנחנו כרגע נעביר את האפליקציה לשפה אחרת בואו ניגש לסטינגס לאנגוויג' הנה יש לנו פה את הלאנגוויג' ואני כרגע אחפש עברית הנה יש לנו פה עברית בחרתי שהשפה של האפליקציה היא עברית אני חוזר בחזרה, אני מסתכל על האפליקציה ועדיין אני רואה את כל המחרוזות באנגלית, אבל משהו עוד יותר גרוע קרה,
פתאום נעלמו לי התיבות טקסט, ה-edit טקסט בעצם נעלם לי, אבל, ולא בדיוק שהוא נעלם, אלא הוא נמצא כאן בצד ימין.
זאת אומרת שה-layout עצמו הוא לא מותאם ל-layout של left, של right to left, אלא הוא מותאם רק ל-layout של left to right.
אנחנו כמובן צריכים גם לטפל בזה. אז בואו נחזיר בחזרה את האפליקציה לשפת האנגלית, הנה יש לנו פה את השפה, נעביר לאנגלית, נחזור לאפליקציה, נחזור לאנדרואיד סטודיו ונראה מה אנחנו צריכים לעשות בכדי
לגרום לאפליקציה לתמוך גם בעברית. דבר ראשון, אנחנו צריכים לקחת את כל המחרוזות שלנו ולא להגדיר אף אחת מהן ישירות בתוך הלייאוט, להגדיר את כולן בקובץ ה-strings.xml כפי שלמדנו בעבר.
אז הנה יש לנו פה את המחוזת הראשונה, User Details, בואו נלחץ על Alt Enter, Extract String Resource וניתן לזה איזשהו מפתח, User Details.
נבצע את אותו הדבר עבור כל המחוזות שמוגדרות בלער. יש לנו פה מפתח First Name, בואו נרד פה למטה, יש לנו כאן last name, ממשיך לרדת ויש לנו כאן, אוקיי, את כל המכרזות מוגדרות בקובץ strings.xml אפשר לראות אותן כאן.
זה השלב הראשון, נסגור ונגיע לשלב השני. השלב השני זה להציג את הדיזיינר וללחוץ על האייקון הזה שאנחנו רואים פה של כדור הארץ.
כאן אנחנו בוחרים ב-Edit Translations, אז בעצם מה שאנחנו רוצים לעשות זה כמובן לבצע את התרגומים. אנחנו רוצים שכל אחת מהמחרוזות האלה שמוגדרת בעצם יהיה לה את התרגום בשפה הספציפית שאנחנו רוצים לתמוך בה.
לצורך כך אנחנו רואים שיש לנו פה את המפתח שנמצא בקובץ ה-strings.xml זאת בעצם הסיבה שהיינו חייבים את כל המחרוזות לשים ב-strings.xml מפני שהתרגומים נלקחים משמה וכאן אנחנו רואים את התרגום של השפה הספציפית כאשר יש לנו פה default value.
value זה הערכים שנלקחים מקובץ ה-strings.xml שנמצא בתיקיית values כלומר תיקיית הדיפולט. איזה שפה אנחנו רוצים להגדיר פה? כמובן שפת הדיפולט בדרך כלל זה יהיה אנגלית אלא אם כן אנחנו כותבים אפליקציה לציבור שהוא לא דובר אנגלית נניח אנחנו רוצים לבנות אפליקציה שהציבור שלה זה קודם כל ציבור של
השפה העברית ולכן default יהיה עברית אם אז אנחנו רוצים לתרגם לעוד שפה אז אנחנו צריכים עכשיו להוסיף את השפה השנייה ברוב המקרים ה-default היא אנגלית אם אנחנו רוצים שהאפליקציה שלנו תתמוך כמובן בשפה האנגלית אז מה אנחנו עושים בשביל להוסיף עוד שפה מה שאנחנו עושים זה לוחצים שוב על האייקון הזה add local ואז יש לנו פה את כל הדגלים של
כל השפות ואנחנו צריכים לבחור את השפה הרצויה בואו נחפש את Hebrew הנה זה נבחר עברית ואנחנו מיד רואים שיש לנו פה עוד עמודה רק עבור התרגומים של עברית אז בואו ניקח עכשיו ערך ערך ונבצע את התרגום לשפה הנוספת כרגע זה עברית אז לוקליוויישן זה יהיה בעברית לוקליזציה פרסט
ניים זה יהיה שם פרטי שימו לב לנקודותיים שנמצאות גם כאן וגם כאן כי זה חלק מהמחרוזת לאסט ניים שם משפחה אוקיי אישור וuser details פרטי משתמש וכרגע תרגמנו את כל המחרוזות שיש באפליקציה כמובן באפליקציה אמיתית יכול להיות פה המון המון המון המון מחרוזות ואנחנו כמובן מתרגמים את כולם נשמור נסגור ונסתכל שיש לנו כאן עכשיו קובץ נוסף
שנקרא strings xml עבור השפה העברית ניכנס אליו ונראה שכל המחרוזות תורגמו ונמצאות כאן אם אנחנו הולכים לקובץ הזה בסייר קבצים שאומרים Explorer אז אנחנו יכולים לראות שהקובץ הזה StringsXML נמצא בתוך values מכף IW שזה הקוד של השפה העברית ואם נעלה למעלה נראה את הקובץ ה-Defaulty ששם ה-StringsXML מכיל את ההגדרות באנגלית.
בואו בשלב הזה נריץ את האפליקציה ונראה אם התרגומים מובאים בחשבון בהתאם לשפה. אז הנה אנחנו רואים שבגלל שאנחנו באנגלית אז אנחנו בעצם רואים את כל המחרוזות באנגלית.
בואו ניגש ונשנה את השפה לעברית. כל האפליקציה עברה להיות עברית ופשוט נבחר את השפה שלנו ונראה שקודם כל כל התרגומים שביצענו נלקחו עבור עברית וזה מעולה.
מה הדבר שעדיין לא פתרנו? עדיין לא פתרנו את התמיכה ב-right-to-left. זאת אומרת, האפליקציה כרגע מוגדרת כ-left-to-right מבחינת הלייאוט שלנו, ואנחנו צריכים לטפל בזה.
אנחנו צריכים לגרום ללייאוט שלנו להיות כזה שמוצג ב-right-to-left, כאשר השפה היא שפה right-to-left, כמו עברית, כמו ערבית וכדומה. אז איך אנחנו עושים את זה?
בואו נחזור בחזרה, נגיע לאנדרואיד סטודיו, ונתחיל לראות מה הפעולות שאנחנו צריכים לעשות בכדי לתמוך ב-right-to-left עבור שפת עברית.
אז הפעולה הראשונה שאנחנו צריכים לעשות זה לגשת לקובץ המניפסט. בקובץ המניפסט ברמת ה-application אנחנו צריכים לגשת ולהגדיר כאן את התכונה support rtl true.
זה בעצם מגדיר שאם יש לנו layout שמוגדר כ-right-to-left רוצים שהוא יילקח בחשבון זה כמובן לא סוגר את כל הפינות אנחנו צריכים עדיין לטפל במשהו מאוד חשוב בלייאוט שלנו אבל זאת ההגדרה הראשונה שאנחנו צריכים להגדיר support rtl true במוניפסט עכשיו אנחנו צריכים לגשת ללייאוט שלנו ואנחנו צריכים לחפש בתוך הלייאוט שלנו שדרך
אגב שימו לב שהוא כרגע רלטיב לייאוט בכדי ליצור בצורה פשוטה את הלייאוט הזה אבל זה לא חייב להיות רלטיב לאאוט, כל לאאוט אחר הניהול שלו הוא אותו הדבר.
אנחנו צריכים לחפש בתוך הלאאוט תי מילים. המילים שאנחנו צריכים לחפש זה right וleft, ובכל מקום שיש את המילה right אנחנו צריכים או להוסיף או להחליף למילה end, ובכל מקום שיש את המילה left אנחנו צריכים או להוסיף או להחליף למילה סטארט מה הכוונה בואו נתחיל לחפש איפה יש כאן בלייאוט הגדרה שכוללת אחת משתי המילים האלה והנה אנחנו כבר רואים כאן את המילה right עכשיו
מה זה אומר זה אומר שיש פה איזשהו אטריביוט האטריביוט הזה נקרא לייאוט קו תחתון to right off ובמילה to right off יש את המילה right ברגע שזה קורה אנחנו עכשיו או להוסיף או להחליף למילה end right הולך עם end ולפט הולך עם start.
אם אנחנו עכשיו נרחף מעל ההגדרה הזאת אנחנו נראה שאנדרואיד סטודיו כותבת לנו consider