מדריך לעריכת קבצי apk, תרגום אפליקציות, רומים ועוד

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

נכתב ע"י avicohh מפורום iandroid.

לאשכול בפורום הקליקו כאן.

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

ראשית נוריד את הדברים הנצרכים.
1. חבילת כלי הפיתוח של אנדרואיד. (sdk) ההורדה מתבצעת מכאן.
חלצו את תוכן הזיפ לכונן c וקראו לתיקייה sdk (לצורך הנוחות).

2. java.
תורידו ותתקינו את הקובץ הבא (על c).
וינדוס 32 סיביות – מכאן.
וינדוס 64 סיביות – מכאן.
חשוב מאד להתקין את הגירסה המתאימה בלבד.
אם אתם לא יודעים איזו גירסה המחשב שלכם, כנסו ללוח הבקרה>מערכת ואבטחה>מערכת ותוכלו לראות את זה ב'סוג מערכת'.

3. apk manager.
הפוסט הראשי בxda-
http://forum.xda-developers.com/showthread.php?t=695701
ההורדה מכאן.
חלצו את תוכן הזיפ לאיזו תיקייה שבא לכם, מהתיקייה הזאת אנחנו עושים את כל העבודה.
…………………

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

תמונה

הסבר קצר על התוכנה:
התוכנה היא בעצם סקריפט שעובד על פקודות שלכם, תוכלו לראות מצד שמאל שלכל פקודה יש מספר.
לאחר שבחרתם בפרוייקט מסוים (קובץ apk) תוכלו להשתמש במספרים השונים כדי לבצע את הפקודות.

אז יאללה לעבודה.
קחו את קובץ הapk (ניתן להעתיק דרך רוט אקספלורר מספריית data\app או בכל צורה אחרת שתמצאו לנכון) של האפליקציה אותה אתם מעוניינים לתרגם, במקרה שלנו זה הגלרייה בתלת מימד של אנדרואיד. ותעתיקו אותו לתיקייה place-apk-here-for-modding שנמצאת בתוך התיקייה של הapk manager.
כעת נבחר פרוייקט. רשמו בסקריפט 22 ותקבלו את רשימת קבצי הapk שנמצאים בתיקייה place-apk-here-for-modding בה שמנו את הקובץ.
גם כאן לכל קובץ יש מספר לצידו, כך שכדי לבחור בקובץ מסוים מתוך הרשימה אתם רושמים את המספר. במקרה שלנו למשל שיש רק קובץ אחד בתיקייה רושמים 1 ואנטר.
כעת תראו בסקריפט למעלה מימין תחת הכותרת current-app את שם האפליקציה עליה אתם עובדים כעת.

לאחר שבחרתם באפליקציה ליחצו על 9 ואשרו כדי לבצע פעולת decompile לקובץ.
מה זה decompile ולמה אנחנו צריכים את זה?
קובץ apk זה בעצם קובץ ארכיון לכל דבר, הסיבה שאנחנו לא יכולים לפתוח אותו סתם בעזרת ווינראר היא בגלל שבתוך הקובץ יש קובץ בשם resources.arsc שמכיל את כל קבצי הxml של השפות למיניהם. הקובץ הזה נוצר על ידי קמפול ולא תוכלו לגשת לתוכן שבפנים בלי פעולת decompile.
כעת לאחר שביצעתם את הפעולה תוכלו לראות שנוספה לכם בתיקיית projects תיקייה עם שם זהה לקובץ הapk שפתחתם.

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

תמונה

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

תמונה

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

נוכל לתרגם הכל דרך פנקס רשימות אבל זה קצת קשה ולכן המשתמש IpDo יצר מערכת php שמקילה על כל העניין.
איך זה עובד?
אתם נכנסים לכתובת http://www.compix.net/xml ונרשמים. (חובה)
כעת אתם בוחרים למעלה בהוספת קבצים, בוחרים בפרוייקט הרצוי ואם עוד אין לכם פרוייקט צרו אחד לעצמכם.
אתם ממלאים את שלושת השדות הראשונים: שם התוכנה, גירסה (אם התוכנה מקבלת עדכון למשל ואתם מעלים שוב קובץ) אתם יכולים לתקוע איזה מספר שבא לכם, ובשדה השלישי אתם בוחרים בקובץ הstrings.xml.

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

תמונה

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

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

קחו את הקובץ ותעתיקו אותו לתיקייה values-iw שיצרתם.
התרגום הושלם, כעת נקמפל את הקובץ.
חזרו לסקריפט וכעת ליחצו על 11, יהיה כתוב building apk ובמידה והכל עבר חלק זה יראה כך.

תמונה

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

ברכות! יש לכם אפליקציה בעברית.
גשו לתיקייה place-apk-here-for-modding ותראו ברשימת הקבצים קובץ חדש עם השם של התוכנה שמתחיל בsigned (או בunsigned אם לא החתמתם) תוכלו להתקין אותו כעת במכשיר איך שאתם מתקינים כל אפליקציה.

טיפ:
תוכלו לקצר את התהליך ובמקום לקמפל, לחתום ולהתקין חברו את המכשיר למחשב (כמובן מצב debuging מופעל) ותלחצו על 14. התוכנה תקמפל תחתים ותתקין לכם את האפליקציה במכשיר.

במידה וזו אפליקציית מערכת (אם אתם מתרגמים אפליקציה שמובנית כבר במכשיר) תעבירו את הקובץ לאיזו תיקייה ותורידו מהשם את הsigned כדי שיחזור לשם המקורי.
כעת תוכלו לדחוף בעזרת adb או רוט אקספלורר חזרה למכשיר.
גם כאן תוכלו לקצר את התהליך ולאחר שקמפלתם והחתמתם תלחצו על 8 זה מבצע push למכשיר (דרך adb), התוכנה תבקש מיקום.
תרשמו את הנתיב המקורי של הקובץ. למשל במקרה שלנו אתם רושמים.

קוד: בחר הכל
\system\app\Galle3D.apk

חשוב מאד לשמור על אותיות קטנות וגדולות.

חשוב מאד.

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

למה אני מקבל שגיאה?

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

תמונה

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

דוגמה:
תרגמתי את קובץ הstrings של הגלרייה אבל בטעות הורדתי רק תו קטן כזה < מאחד הערכים-

תמונה

והופ.. יש שגיאה.
מה עושים?
בשביל זה יש לתוכנה קובץ לוג שבו כל הפעולות והשגיאות נרשמות.
גשו לתיקייה של התוכנה וכנסו לקובץ log.txt.
רדו למטה לפעולה האחרונה שלכם (תוכלו לראות לפי תאריך ושעה) חפשו את הI: Building resources… (הקמפול) מיד אחר כך יופיעו השגיאות.
לדוגמה במקרה שלנו.

תמונה

שימו לב לשורה המודגשת, הלוג מפנה למקום השגיאה.
Apk Manager\other\..\projects\Gallery3D.apk\res\values-iw\strings.xml:4
4 הכוונה הערך הרביעי בxml בו קרתה הטעות.

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

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

בהצלחה.

………………….

נספח – תרגום רומים

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

ראשית אנחנו לוקחים את הזיפ של הרום ופורסים אותו לתיקייה כלשהיא. הזיפ מורכב מכמה תיקיות אנחנו מתמקדים בsystem.
מה רלוונטי בשבילנו?
1. ספריית app.
זה בעצם כל קבצי הapk של הרום שזה אומר הכל: ההודעות, החייגן, האנטרנט, המסך בית, ההגדרות וכמובן כל האפליקציות. בשביל שיהיה לנו רום בעברית אנחנו צריכים לתרגם את קבצי הapk לעברית.
נתחיל קודם עם מסך הבית (חפשו קובץ עם launcher בשם כך זה לרוב, במכשירי htc למשל מסך הבית נקרא Rosie.apk -אל תשאלו אותי למה..) ועם כל התוכנות שאתם רואים ברשימת האפליקציות במכשיר.
לאחר מכן אתם יכולים לעבור לקבצי הapk היותר מערכתיים אם יש לכם כח ורצון כדי שהכל יהיה בעברית.

את כל קבצי הapk ששיניתם (כמובן שהשארתם את השם המקורי) אתם שמים בתיקיית app במקום המקוריים.

ספריית fonts
כמובן – פונטים. אמנם ב2.2 יש כבר פונטים מובנים אבל מן הסתם אתם תעדיפו את הפונטים היותר יפים (של דניאל למשל) ובמידה וכן אתם מעתיקים אותם לספרייה הזו במקום הקבצים המקוריים. (אין צורך למחוק, פשוט אשרו את ההחלפה).

ספריית framework
בתיקייה הזו יש כמה דברים חשובים.
1. קובץ framework.jar.
הקובץ הזה אחראי על הישור לימין שאתם צריכים בגלל העברית. אתם עורכים אותו על פי המדריך של רון לתיקון כל בעיות העברית ב2.1 ו2.2 ואת הקובץ המתוקן אתם שמים במקום המקורי.
2. קובץ framework.res.apk.
זה קובץ שאחראי על התרגום של המערכת בהמון מקומות שלא משוייכים לשום קובץ apk מספריית app.
למשל: תפריט הכיבוי, תפריט העתק הדבק שפת הכתיבה וכו', כפתורי אישור וביטול, מסך הנעילה ועוד הרבה.
במכשירי htc התוכן עבר הסבה לקובץ בשם com.htc.resources.apk גם הוא נמצא בספריית framework ורק מעט ערכים נשארו בקובץ המקורי.
3. בדרך כלל יש קובץ שלישי בסיומת apk בספרייה הזו שהוא אידיבודאלי לכל חברה. למשל בhtc זה הקובץ שהזכרנו קודם ובסמסונג יש קובץ twframework-res.apk שאחראי על שורת ההתראות.
כל קובץ apk שנמצא שם תצטרכו לתרגם.

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

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

קובץ הapk מורכב מכמה דברים- הקוד של התוכנה, התמונות, הקבצי xml של התרגום ועוד.
החלק שאנחנו משנים זה את הxml-ים בלבד, אבל. עצם הקמפול מחדש יוצר את הקבצים של הקוד שוב ופה קורות המון צרות.
מה עושים?
במקרה של קריסה (או תמיד) במקום לשים את הקובץ החדש שנוצר על ידי הקמפול אנחנו עושים קומבינה.. :(

לוקחים את הקובץ apk המקורי ופותחים על ידי ווינראר.
בו זמנית פותחים בחלון חדש (גם דרך ווינראר) את הקובץ signed.apk שנוצר לנו.
כעת אנחנו גוררים את הקובץ resources.arsc מהקובץ המתורגם ושמים בקובץ המקורי ומאשרים את הדחיסה וההחלפה. (זה אוטומטי מוגדר בווינראר שיחליף אם השם זהה)
מה בעצם עשינו? הקובץ resources.arsc זה הקובץ שמכיל את כל ספריות הvalues המתורגמות. ברגע שהעתקנו רק את הקובץ הזה לתוך הapk המקורי שינינו רק את החלק הזה, וכל מה שקשור לקוד לא נגענו.

locale עברי.
איך עושים עברית ברשימת השפות ברום?
כמובן שבכל מצב ניתן להשתמש בmorelocale 2 אבל אנחנו רוצים את זה מובנה.
הדבר הזה לא תמיד זהה בכל חברה אבל בחלק מהמכשירים (גלקסי S למשל) ויתכן שזה ברוב המכשירים – לא בדקתי, הקובץ שאחראי על זה זה הקובץ framework.res.apk שהזכרנו קודם.
כשאתם מתרגמים את הקובץ במקום ליצור תיקייה בשם values-iw אתם קוראים לתיקייה values-iw-rIL.
סיכוי גדול שכעת תראו ברשימת השפות גם עברית. אם לא – לא נורא.. זה לא מזיק.
קרדיט לmena שגילה את הסוד הזה, ובכלל המון תודה אני חייב לו על העזרה בכל העניין הזה.

חתימת קבצים
כעקרון הרקוברי אמור לאשר רק זיפים חתומים רק שברקוברי של clockworkmod נוספה אפשרות לבטל את הבדיקה הזו וכך זה כברירת מחדל.
אם אתם מעוניינים שהזיפ יעבוד בכל סוג רקוברי או אם סתם בא לכם להחתים תוכלו לעשות אגם את זה דרך הapk manager.
תעתיקו את קבצי הזיפ שאתם מעוניינים להחתים לתיקיית place-apk-here-for-signing ובסקריפט תרשמו 16. כל הקבצים שבתיקייה יוחתמו.

אז זהו.
זה היה שיעור על קצה המזלג.. מקווה שתפיקו ממנו תועלת.

בהצלחה.

מודעות פרסומת

4 תגובות ל-“מדריך לעריכת קבצי apk, תרגום אפליקציות, רומים ועוד

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

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s