Az apk fájlok
Az Android alatt látható szövegek az apk fájlokban rejtőznek. Ilyen fájlok két helyen vannak:
system/framework/
system/app
Közönséges zip fájlok. Csakhogy hiába nézünk bele, ettől még nem fogjuk megtalálni a benne lévő szövegeket.
Lássuk, mit is találunk helyette:
A fordítás szempontjából fontos mappák:
Hirdetés
META_INF: a fájl digitális aláírása
res: nem becsomagolt erőforrások, bináris xml-ek és képek
classes.dex: a binárisra fordított programkód
resources.arsc: lefordított erőforrások, itt vannak a szövegek is, számunkra elérhetetlen kódban...
Vissza kell őket fejtenünk a beszédes nevű apktoollal, amit itt találhatunk: Apktool
Két része van: maga a jar fájl és a scriptek a megfelelő rendszerek alá. Szükség van még hozzá JAVA támogatásra is, hogy futtatni lehessen. Az előkészítést (egy mappába kell másolni mindent...) követően, tegyük a következőket:
A framework mappából az ÖSSZES apk-t másoljuk a mappánkba!
Adjuk ki a következő parancsokat:
apktool if apkfajlokneve.apk
Természetesen sorban, egyesével pl.:
apktool if s2-framework-res.apk
apktool if aokp-framework-res.apk
Települnek a kódlapok, szépen, egyesével.
Miután ezzel megvagyunk, fejtsük vissza a fájlokat:
apktool d -s aokp-framework-res.apk
A d kapcsoló a decompile rövidítése, az -s pedig azt szabályozza, hogy a forráskódokat nem kell visszafejteni, tehát a classes.dex egyben marad.
Ha a kibontás sikeres és nem kaptunk hibát, akkor most az apk fájlunknak megfelelő nevű mappában megtaláljuk a res/ mappákat. Itt vannak a szövegek, illetve a mappa neve jelzi a tartalmakat. Szövegeket találhatunk a values, a raw és az xml mappákban is.
Minden mappának van prefixuma, ami azt jelöli milyen területkódhoz tartozik, kivéve az alap mappákat. Pl. a /res/values a szöveges alap mappa, a values-fr a francia, a values-ru az orosz és így tovább. Nekünk a magyar kell elsősorban, tehát a values-hu.
Kivételt képez a framework-res fájl, ugyanis itt kötelező legalább 3 db mappa egy nyelvhez, másképp a Settings (Beállítások) alatt nem szokott megjelenni a listában a kívánt nyelv!
Ezek sorban a:
/res/raw-hu
/values-hu
/values-hu-rHU
Ebből is kiemelten fontos a /values-hu-rHU, mert ebben van egy kulcs xml (arrays.xml), amit a listakezelő figyel. Az xml tartalma a magyar nyelvhez a következő:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer-array name="maps_starting_lat_lng">
<item>47162494</item>
<item>19503304</item>
</integer-array>
<integer-array name="maps_starting_zoom">
<item>4</item>
</integer-array>
</resources>
Ha a framework fájlok fordítása készen lett, akkor építsük vissza őket!
apktool b s2-framework-res
Ügyeljünk, hogy a b (build) kapcsoló után NE adjunk meg kiterjesztést, mert hibát fogunk kapni!
Ha minden jól ment, akkor állhatunk neki a system mappának! Ott nem kell már kódlapot telepíteni, csak a fájlokat visszafejteni, majd a megfelelő fordítások elkészülte után vissza és már majdnem készen vagyunk, csak...
A cikk még nem ért véget, kérlek, lapozz!