גוגל עובדת על תכונת תרגום חדשה של ממשק משתמש באנדרואיד 12 שיכולה לתרגם אוטומטית אפליקציות לשפת האם שלך.
עם למעלה מ-2.5 מיליארד משתמשים פעילים, אנדרואיד היא מערכת ההפעלה הנפוצה ביותר בעולם. בעוד מערכת ההפעלה עצמה הותאמה לעשרות שפות שונות, זה לא המקרה עבור אפליקציות צד שלישי רבות. חברות גדולות יותר יכולות לבצע לוקליזציה של האפליקציות שלהן בתוך הבית או לשכור שירותי תרגום מקצועיים, אך אפשרויות אלו אינן כדאיות מבחינה כלכלית עבור צוותים קטנים יותר או מפתחי אפליקציות עצמאיים. במקרה הטוב, צוות קטן יותר או מפתח אפליקציות אינדי יכול להביא תרגומים במקור המונים מדוברי שפת אם, ובמקרה הרע, הם יכולים להשתמש בשירותי תרגום מכונה כדי לעשות את העבודה. עם זאת, זה יכול להשתנות אנדרואיד 12, כפי שראינו עדויות המצביעות על כך שגוגל עשויה לעבוד על מסגרת לתרגום אוטומטי של ממשק המשתמש של אפליקציה לשפת האם של המשתמש.
פירוק APK יכול לעתים קרובות לחזות תכונות שעשויות להגיע בעדכון עתידי של אפליקציה, אך ייתכן שכל אחת מהתכונות שאנו מזכירים כאן לא תגיע אליה במהדורה עתידית. הסיבה לכך היא שתכונות אלה אינן מיושמות כרגע ב-build החי ועשויות להימשך בכל עת על ידי המפתחים ב-build עתידי.
מוקדם יותר השבוע, השגנו מבנה אנדרואיד 12 שלא פורסם שמכיל א כמה תכונות חדשות ושינויים בממשק המשתמש. תוך כדי חפירה במהדורה, גילינו המון שיעורים חדשים במסגרת הקשורים לחדש "שירות תרגום". החיפוש שלנו התחיל כשגילינו שתי הרשאות חדשות שנוספו למבנה זה של אנדרואיד 12: BIND_TRANSLATION_SERVICE
ו MANAGE_UI_TRANSLATION
. ה-SystemUI של אנדרואיד מחזיק בהרשאת הקודמת להיקשר לאפליקציה שמחזיקה ברשות השנייה, אשר כברירת מחדל מוגדרת על ידי הערך config_defaultTranslationService
. ככל הנראה, ניתן להגדיר אפליקציה כמו Google Translate או Device Personalization Services כשירות התרגום, אך גוגל עשויה לפתוח אותה לאפליקציות של צד שלישי כשירות MANAGE_UI_TRANSLATION
להרשאה "תפקיד" מוגדר כאחת מרמות ההגנה הנתמכות. אם תזכרו, אנדרואיד 10 הוסיפה "תפקידים" שמגדירים אפליקציות שצריכות להיות להן הרשאות מסוימות; ייתכן ש-Google עשויה להוסיף "מתרגם" כתפקיד, אך איננו יודעים אם ניתן להעניק תפקיד זה לאפליקציות המותקנות על ידי המשתמש.
בכל מקרה, מצאנו הפניות להרשאות אלו בקוד המסגרת, שם זיהינו ראיות לכך קוד תרגום חדש פועל על צפיות בתוך פעילויות ולא על צילום מסך או על האפליקציות האחרונות לוּחַ. תרגום טקסט בתוך צילומי מסך או חלונית האפליקציות האחרונות כבר יכול להיעשות על ידי Google Lens, ובשילוב עם שירותי התאמה אישית של מכשירים, ניתן לבצע טקסט תורגם ישירות מחלונית האפליקציות האחרונות. בינתיים, מערכת הכוונות של אנדרואיד כבר מאפשרת שיתוף בסיסי של טקסט לתרגום. עם זאת, נראה שהמסגרת החדשה הזו מורכבת יותר וברמה נמוכה יותר, ואנו מאמינים שהיא שואפת ישירות לתרגם טקסט בתוך ממשק המשתמש של אפליקציה, תוך החלפת טקסט בשורה כדי לגרום לתרגום להרגיש יותר מקורי.
בדקנו את הגרסאות העדכניות ביותר של Google Translate ושירותי התאמה אישית של מכשירים, אך לא מצאנו ראיות לשילוב של ממשק API חדש זה. ייתכן שה-API הזה לא ישתמש ישירות ב-Google Translate אלא בנקודת קצה אחרת של API. אם תכונה זו תיושם בהתאם לספקולציות שלנו, אנו בספק אם גוגל תחייב את המשתמשים עבור תכונה זו. עם זאת, ייתכן שהם עשויים לאפשר תרגומי ממשק משתמש המופעלים על ידי Google Translate כתכונה בלעדית לפיקסל. עם זאת, מכיוון שנראה שהמסגרת מגיעה ל-AOSP, ייתכן שיצרני OEM יכולים להגדיר שירות תרגום משלהם אם הם לא רוצים להשתמש ב-Google.
אפליקציות של צד שלישי כמו AllTrans הציעו במשך שנים תכונת תרגום ממשק משתמש משלהם. המופעלים על ידי ה-Xposed Framework, המודים הללו פועלים באופן דומה לאופן שבו אנו חושבים שתרגום ממשק המשתמש של אנדרואיד 12 יעבוד, ומתחבר ישירות לתצוגות של אפליקציה כדי לתרגם ולהחליף את הטקסט. עם זאת, אופנים אלה דורשים מהמשתמשים לתפוס מפתח API משלהם עבור שירות תרגום מכיוון שמפתח משותף יעבור את המגבלה החינמית די מהר. עם זאת, כשגוגל בונה לכאורה מסגרת תרגום ממשק משתמש ישירות לאנדרואיד 12, המשתמשים לא יצטרכו עוד לבצע רוט במכשיר שלהם כדי לתרגם אפליקציות לשפת האם שלהם. זה מקווה להפוך אלפי אפליקציות לנגישות יותר למשתמשים ברחבי העולם.
באמצעות ה-Xposed Framework, AllTrans מתחבר לתצוגות טקסט בתוך אפליקציות כדי לתרגם את הטקסט באמצעות המתרגם של מיקרוסופט.
מפתחים ייהנו גם מתרגומי ממשק משתמש אוטומטיים. מפתחים שאין להם את המשאבים לתרגם את האפליקציה שלהם או שאינם רוצים להשתמש בתרגום מכונה יכולים לתת למערכת ההפעלה לטפל בדברים. שחרור אפליקציה בתרגום מכונה עלול לגרום לביקורות שליליות ממשתמשים המאשימים את המפתח בתרגום הלקוי, אך יש לו את המשתמש עצמם יכוונו את מערכת ההפעלה לתרגם את האפליקציה יגרום לפחות תסכול מכיוון שהמשתמש מבין טוב יותר היכן להטיל את האשמה על כל גרוע טקסט מתורגם.
למרות שאנחנו די בטוחים שהתכונה הזו נועדה לתרגם את ממשק המשתמש בתוך אפליקציות, אנחנו לא בטוחים ב-100% שזה המצב עד שנראה את התכונה בפעולה. שימוש חלופי בתכונה זו יהיה לתרגם את ממשק המשתמש בתוך מערכת ההפעלה או רק אפליקציות מערכת, אבל אנחנו חושבים שזה לא סביר מכיוון שמערכת ההפעלה כבר ממוקמת באופן נרחב וניתן לבצע כל לוקליזציה לפני שהמכשיר עוזב את היצרן או באמצעות OTA עדכון. מצד שני, גוגל ויצרני OEM לא יכולים לתת את הדעת באילו שפות אפליקציה תומכת, אז תכונה זו תעזור להשלים את הפער. בהתחשב בעובדה שגוגל מפתחת תכונה זו ברמת התצוגה, מה שהופך אותה כך שניתן להשתמש בה בכל האפליקציות, גם מעלה את הסיכוי שהיא מיועדת לשימוש באפליקציות ולא במערכת ההפעלה. עם זאת, שוב, לא נדע בוודאות עד שהפיצ'ר הזה ישוחרר, מה שאולי יקרה או לא יקרה במהדורה היציבה של אנדרואיד 12.
תודה למפתחים קוויני899 ו kdrag0n על עזרתם בניתוח קוד זה. תודה גם ל-PNF Software שסיפקה לנו רישיון שימוש Decompiler של JEB, כלי הנדסה לאחור ברמה מקצועית עבור יישומי אנדרואיד.